)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"334c74cd9f7dc981954ea9373444a4048a91ca47","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gerrit Code Review \u003creview@openstack.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-07 15:49:08 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix issue when a image upload is interrupted it is not cleaned up"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If an image is upload is interrupted, the file check will succeed"},{"line_number":10,"context_line":"though the image is invalid.  Subsequent boots will then fail.  This"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAATH%2F%2Fym8%3D","line":7,"updated":"2013-10-09 19:03:05.000000000","message":"It\u0027s standard practice to prefix the commit subject with a driver name if the changes are specific to a driver.  So \u0027VMware: ...\u0027","commit_id":"94d1a8ea49a30105d975b0374784242e47bea7f7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"3884c3ed4489ef755498524fb8efdc3ceef407ed","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gerrit Code Review \u003creview@openstack.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-07 15:49:08 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix issue when a image upload is interrupted it is not cleaned up"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If an image is upload is interrupted, the file check will succeed"},{"line_number":10,"context_line":"though the image is invalid.  Subsequent boots will then fail.  This"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAATH%2F%2FmyI%3D","line":7,"updated":"2013-10-13 07:43:08.000000000","message":"please prefix with VMware.","commit_id":"94d1a8ea49a30105d975b0374784242e47bea7f7"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"eb61f06a7411f7865e78e5941bc6db91b270b508","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gerrit Code Review \u003creview@openstack.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-15 01:04:36 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"VMWare - Fix issue when a image upload is interrupted it is not cleaned up"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If an image is upload is interrupted, the file check will succeed"},{"line_number":10,"context_line":"though the image is invalid.  Subsequent boots will then fail.  This"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAATH%2F%2FgT4%3D","line":7,"updated":"2013-10-15 10:07:53.000000000","message":"./setup.py:1:1: H802  git commit title (\u0027VMWare - Fix issue when a image upload is interrupted it is not cleaned up\u0027) should be under 50 chars\n2013-10-15 01:10:23.023 | ERROR: InvocationError: \u0027/home/jenkins/workspace/gate-nova-pep8/.tox/pep8/bin/flake8\u0027","commit_id":"eaa9f894dc3b6a24a38e2519ae02931843031822"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"6156902ffa7abefaaa0d9fe9531167f3034cd31a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"validates the file and re-uploads if an invalid file is found"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I884bdc16bc8ad0fdcdb20e53ee54e62f29f331ef"},{"line_number":14,"context_line":"Fixes: bug # 1213269"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"AAAATn%2F%2FtLk%3D","line":14,"updated":"2013-10-30 07:36:54.000000000","message":"Bad syntax here. Closes-Bug: #1213269.","commit_id":"7896cb7b6a14cfd1fdb3ee52ec6f95125213dfa9"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"735f71cd907fbf64e9566bf639fb467fbb99ab65","unresolved":false,"context_lines":[{"line_number":11,"context_line":"validates the file and re-uploads if an invalid file is found"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I884bdc16bc8ad0fdcdb20e53ee54e62f29f331ef"},{"line_number":14,"context_line":"Fixes: bug #1213269"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"AAAATn%2F%2FU%2Bw%3D","line":14,"updated":"2013-11-10 15:12:54.000000000","message":"Closes-Bug: #1213269","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"}],"nova/tests/virt/vmwareapi/test_vmwareapi.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"6156902ffa7abefaaa0d9fe9531167f3034cd31a","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        vmops.VMwareVMOps._validate_image(mox.IgnoreArg(), mox.IgnoreArg(),"},{"line_number":300,"context_line":"                            mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(False)"},{"line_number":301,"context_line":"        vmops.VMwareVMOps._validate_image(mox.IgnoreArg(), mox.IgnoreArg(),"},{"line_number":302,"context_line":"                            mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(False)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self.mox.ReplayAll()"},{"line_number":305,"context_line":"        self._create_vm()"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FtHo%3D","line":302,"updated":"2013-10-30 07:36:54.000000000","message":"Shouldn\u0027t you return True from this call? One failure and one success?\n\nAlso you don\u0027t seem to be validating that the file is re-uploaded, just that the validate calls are made, which seems to leave lots of room for things to go wrong.","commit_id":"7896cb7b6a14cfd1fdb3ee52ec6f95125213dfa9"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"735f71cd907fbf64e9566bf639fb467fbb99ab65","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        self.assertTrue(vmwareapi_fake.get_file(cache_root_path))"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def test_invalid_file(self):"},{"line_number":296,"context_line":"        \"\"\"Test xxx.\"\"\""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # pre-load the cache with the file"},{"line_number":299,"context_line":"        cache_file_path \u003d \u0027[fake-ds] vmware_base/fake_image_uuid.vmdk\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FVCE%3D","line":296,"updated":"2013-11-10 15:12:54.000000000","message":"It is better use a meaningful comments here.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"363dba3cfa2597194d6d5caf799f8648934bc513","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        self.assertTrue(vmwareapi_fake.get_file(cache_root_path))"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def test_invalid_file(self):"},{"line_number":296,"context_line":"        \"\"\"Test xxx.\"\"\""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # pre-load the cache with the file"},{"line_number":299,"context_line":"        cache_file_path \u003d \u0027[fake-ds] vmware_base/fake_image_uuid.vmdk\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FImc%3D","line":296,"in_reply_to":"AAAATn%2F%2FVCE%3D","updated":"2013-11-14 00:30:30.000000000","message":"Or don\u0027t do a docstring at all - they devalue the test output.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"363dba3cfa2597194d6d5caf799f8648934bc513","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def test_invalid_file(self):"},{"line_number":296,"context_line":"        \"\"\"Test xxx.\"\"\""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # pre-load the cache with the file"},{"line_number":299,"context_line":"        cache_file_path \u003d \u0027[fake-ds] vmware_base/fake_image_uuid.vmdk\u0027"},{"line_number":300,"context_line":"        vmwareapi_fake._add_file(cache_file_path)"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FImY%3D","line":297,"updated":"2013-11-14 00:30:30.000000000","message":"Unnecessary whitespace.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"}],"nova/virt/vmwareapi/fake.py":[{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"735f71cd907fbf64e9566bf639fb467fbb99ab65","unresolved":false,"context_lines":[{"line_number":833,"context_line":""},{"line_number":834,"context_line":"    def create(self, obj_name):"},{"line_number":835,"context_line":"        \"\"\"Creates a namespace object.\"\"\""},{"line_number":836,"context_line":"        if obj_name \u003d\u003d \u0027ns0:HostDatastoreBrowserSearchSpec\u0027 or \\"},{"line_number":837,"context_line":"                obj_name \u003d\u003d \u0027ns0:VmDiskFileQuery\u0027:"},{"line_number":838,"context_line":"            obj \u003d FileSearchSpec(obj_name)"},{"line_number":839,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FU%2FE%3D","line":836,"updated":"2013-11-10 15:12:54.000000000","message":"Please do not use \"\\\" but use () instead to connect the strings.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"363dba3cfa2597194d6d5caf799f8648934bc513","unresolved":false,"context_lines":[{"line_number":833,"context_line":""},{"line_number":834,"context_line":"    def create(self, obj_name):"},{"line_number":835,"context_line":"        \"\"\"Creates a namespace object.\"\"\""},{"line_number":836,"context_line":"        if obj_name \u003d\u003d \u0027ns0:HostDatastoreBrowserSearchSpec\u0027 or \\"},{"line_number":837,"context_line":"                obj_name \u003d\u003d \u0027ns0:VmDiskFileQuery\u0027:"},{"line_number":838,"context_line":"            obj \u003d FileSearchSpec(obj_name)"},{"line_number":839,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FImQ%3D","line":836,"in_reply_to":"AAAATn%2F%2FU%2FE%3D","updated":"2013-11-14 00:30:30.000000000","message":"I don\u0027t think this is a matter for review: both () and \\ are valid for if blocks. flake8 is happy - enough said.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"}],"nova/virt/vmwareapi/vm_util.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"6156902ffa7abefaaa0d9fe9531167f3034cd31a","unresolved":false,"context_lines":[{"line_number":605,"context_line":"        search_spec.query.append(vmDiskFileQuerySpec)"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":""},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"    return search_spec"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FtHU%3D","line":608,"updated":"2013-10-30 07:36:54.000000000","message":"These blank lines are not needed and don\u0027t add clarity. One /might/ if you felt so  inclined, but not three.","commit_id":"7896cb7b6a14cfd1fdb3ee52ec6f95125213dfa9"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"735f71cd907fbf64e9566bf639fb467fbb99ab65","unresolved":false,"context_lines":[{"line_number":585,"context_line":"    return virtual_machine_config_spec"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"def search_datastore_spec(client_factory, file_name, get_file_size\u003dFalse):"},{"line_number":589,"context_line":"    \"\"\"Builds the datastore search spec.\"\"\""},{"line_number":590,"context_line":"    search_spec \u003d client_factory.create(\u0027ns0:HostDatastoreBrowserSearchSpec\u0027)"},{"line_number":591,"context_line":"    search_spec.matchPattern \u003d [file_name]"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FU%2FA%3D","line":588,"updated":"2013-11-10 15:12:54.000000000","message":"There is no ut to reflect this change.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"363dba3cfa2597194d6d5caf799f8648934bc513","unresolved":false,"context_lines":[{"line_number":585,"context_line":"    return virtual_machine_config_spec"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"def search_datastore_spec(client_factory, file_name, get_file_size\u003dFalse):"},{"line_number":589,"context_line":"    \"\"\"Builds the datastore search spec.\"\"\""},{"line_number":590,"context_line":"    search_spec \u003d client_factory.create(\u0027ns0:HostDatastoreBrowserSearchSpec\u0027)"},{"line_number":591,"context_line":"    search_spec.matchPattern \u003d [file_name]"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FImI%3D","line":588,"in_reply_to":"AAAATn%2F%2FU%2FA%3D","updated":"2013-11-14 00:30:30.000000000","message":"ut?","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"aedc365604d5b8223653a1c3f011f4cba3541e9d","unresolved":false,"context_lines":[{"line_number":478,"context_line":""},{"line_number":479,"context_line":"    def _validate_image(self, dc_ref, folder, file, instance):"},{"line_number":480,"context_line":"        \"\"\"Validate the vmdk file in the given data store and folder.\"\"\""},{"line_number":481,"context_line":"        # The api does not provide a validaion command, however the virtual"},{"line_number":482,"context_line":"        # disk  commands do check the vmdk files.  Therefore simply getting"},{"line_number":483,"context_line":"        # the uuid of a disk will return an error if the vmdk is not"},{"line_number":484,"context_line":"        # properly created  (i.e. the meta-data file is missing or the root"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2Facg%3D","line":481,"updated":"2013-09-27 07:15:56.000000000","message":"validaion  \u003d\u003e validation","commit_id":"95cc49b9d5964aeada8d8962c80f66f37df87b4e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"aedc365604d5b8223653a1c3f011f4cba3541e9d","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        LOG.debug(_(\"Validating Virtual Disk %(file)s on datacenter %(dc)s\"),"},{"line_number":488,"context_line":"                  {\u0027file\u0027: vmdk_name, \u0027dc\u0027: dc_ref})"},{"line_number":489,"context_line":"        service_content \u003d self._session._get_vim().get_service_content()"},{"line_number":490,"context_line":"        try:"},{"line_number":491,"context_line":"            vmdk_validate_task \u003d self._session._call_method("},{"line_number":492,"context_line":"                self._session._get_vim(),"},{"line_number":493,"context_line":"                \"QueryVirtualDiskUuid\","}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FabQ%3D","line":490,"updated":"2013-09-27 07:15:56.000000000","message":"Any reason why we do not put this check in path_file_exists?","commit_id":"95cc49b9d5964aeada8d8962c80f66f37df87b4e"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"9c09eb97c423e89243e9959b565336a8af51bd9b","unresolved":false,"context_lines":[{"line_number":487,"context_line":"        LOG.debug(_(\"Validating Virtual Disk %(file)s on datacenter %(dc)s\"),"},{"line_number":488,"context_line":"                  {\u0027file\u0027: vmdk_name, \u0027dc\u0027: dc_ref})"},{"line_number":489,"context_line":"        service_content \u003d self._session._get_vim().get_service_content()"},{"line_number":490,"context_line":"        try:"},{"line_number":491,"context_line":"            vmdk_validate_task \u003d self._session._call_method("},{"line_number":492,"context_line":"                self._session._get_vim(),"},{"line_number":493,"context_line":"                \"QueryVirtualDiskUuid\","}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FZHg%3D","line":490,"in_reply_to":"AAAAS3%2F%2FabQ%3D","updated":"2013-09-27 16:04:09.000000000","message":"well it\u0027s called from path_file_exists.  Do you mean don\u0027t use a new method??","commit_id":"95cc49b9d5964aeada8d8962c80f66f37df87b4e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"aedc365604d5b8223653a1c3f011f4cba3541e9d","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        try:"},{"line_number":491,"context_line":"            vmdk_validate_task \u003d self._session._call_method("},{"line_number":492,"context_line":"                self._session._get_vim(),"},{"line_number":493,"context_line":"                \"QueryVirtualDiskUuid\","},{"line_number":494,"context_line":"                service_content.virtualDiskManager,"},{"line_number":495,"context_line":"                name\u003dvmdk_name,"},{"line_number":496,"context_line":"                datacenter\u003ddc_ref)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2Fabs%3D","line":493,"updated":"2013-09-27 07:15:56.000000000","message":"Is using QueryVirtualDiskGeometry and option? This may help us validtae size etc.","commit_id":"95cc49b9d5964aeada8d8962c80f66f37df87b4e"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"79dd867ef379c78033c3492fc65c39bfd8d98cec","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        try:"},{"line_number":491,"context_line":"            vmdk_validate_task \u003d self._session._call_method("},{"line_number":492,"context_line":"                self._session._get_vim(),"},{"line_number":493,"context_line":"                \"QueryVirtualDiskUuid\","},{"line_number":494,"context_line":"                service_content.virtualDiskManager,"},{"line_number":495,"context_line":"                name\u003dvmdk_name,"},{"line_number":496,"context_line":"                datacenter\u003ddc_ref)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FYns%3D","line":493,"in_reply_to":"AAAAS3%2F%2FZHM%3D","updated":"2013-09-27 17:46:00.000000000","message":"Actually - once i have the sector info, etc how do i validate the glance image matches that.  Do you know how that is calculated?","commit_id":"95cc49b9d5964aeada8d8962c80f66f37df87b4e"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"9c09eb97c423e89243e9959b565336a8af51bd9b","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        try:"},{"line_number":491,"context_line":"            vmdk_validate_task \u003d self._session._call_method("},{"line_number":492,"context_line":"                self._session._get_vim(),"},{"line_number":493,"context_line":"                \"QueryVirtualDiskUuid\","},{"line_number":494,"context_line":"                service_content.virtualDiskManager,"},{"line_number":495,"context_line":"                name\u003dvmdk_name,"},{"line_number":496,"context_line":"                datacenter\u003ddc_ref)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FZHM%3D","line":493,"in_reply_to":"AAAAS3%2F%2Fabs%3D","updated":"2013-09-27 16:04:09.000000000","message":"sure - i just picked one - i think under the covers that all of these are causing the virtual disk manager to validate the image","commit_id":"95cc49b9d5964aeada8d8962c80f66f37df87b4e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"aedc365604d5b8223653a1c3f011f4cba3541e9d","unresolved":false,"context_lines":[{"line_number":511,"context_line":"                self._session._wait_for_task(instance[\u0027uuid\u0027],"},{"line_number":512,"context_line":"                                             vmdk_delete_task)"},{"line_number":513,"context_line":"            except Exception as e:"},{"line_number":514,"context_line":"                # Ignore these failures - the file may not exist"},{"line_number":515,"context_line":"                pass"},{"line_number":516,"context_line":"            try:"},{"line_number":517,"context_line":"                 # delete root file xxx-flat.vmdk"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2Fabk%3D","line":514,"updated":"2013-09-27 07:15:56.000000000","message":"Can we log the exception here. It may be useful and helpful for debugging","commit_id":"95cc49b9d5964aeada8d8962c80f66f37df87b4e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"aedc365604d5b8223653a1c3f011f4cba3541e9d","unresolved":false,"context_lines":[{"line_number":525,"context_line":"                self._session._wait_for_task(instance[\u0027uuid\u0027],"},{"line_number":526,"context_line":"                                             vmdk_delete_task)"},{"line_number":527,"context_line":"            except Exception as e:"},{"line_number":528,"context_line":"                # Ignore these failures - the file may not exist"},{"line_number":529,"context_line":"                pass"},{"line_number":530,"context_line":"            return False"},{"line_number":531,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2Fabg%3D","line":528,"updated":"2013-09-27 07:15:56.000000000","message":"ditto","commit_id":"95cc49b9d5964aeada8d8962c80f66f37df87b4e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"33013fe95d7dcf003bc69a9b30b8eb17f31a513a","unresolved":false,"context_lines":[{"line_number":481,"context_line":"                                        data_store_ref, data_store_name,"},{"line_number":482,"context_line":"                                        upload_folder,"},{"line_number":483,"context_line":"                                        upload_name + \".%s.vmdk\" % root_gb,"},{"line_number":484,"context_line":"                            instance)):"},{"line_number":485,"context_line":"                    dc_ref \u003d self._get_datacenter_ref_and_name()[0]"},{"line_number":486,"context_line":"                    LOG.debug(_(\"Copying root disk of size %sGb\"), root_gb)"},{"line_number":487,"context_line":"                    copy_spec \u003d self.get_copy_virtual_disk_spec("}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2FmyQ%3D","line":484,"updated":"2013-10-13 07:42:06.000000000","message":"indentation here is not aligned","commit_id":"94d1a8ea49a30105d975b0374784242e47bea7f7"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"334c74cd9f7dc981954ea9373444a4048a91ca47","unresolved":false,"context_lines":[{"line_number":544,"context_line":""},{"line_number":545,"context_line":"    def _validate_image(self, dc_ref, folder, file, instance):"},{"line_number":546,"context_line":"        \"\"\"Validate the vmdk file in the given data store and folder.\"\"\""},{"line_number":547,"context_line":"        # The api does not provide a validaion command, however the virtual"},{"line_number":548,"context_line":"        # disk  commands do check the vmdk files.  Therefore simply getting"},{"line_number":549,"context_line":"        # the uuid of a disk will return an error if the vmdk is not"},{"line_number":550,"context_line":"        # properly created  (i.e. the meta-data file is missing or the root"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2Fyms%3D","line":547,"updated":"2013-10-09 19:03:05.000000000","message":"s/validaion/validation/","commit_id":"94d1a8ea49a30105d975b0374784242e47bea7f7"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"334c74cd9f7dc981954ea9373444a4048a91ca47","unresolved":false,"context_lines":[{"line_number":545,"context_line":"    def _validate_image(self, dc_ref, folder, file, instance):"},{"line_number":546,"context_line":"        \"\"\"Validate the vmdk file in the given data store and folder.\"\"\""},{"line_number":547,"context_line":"        # The api does not provide a validaion command, however the virtual"},{"line_number":548,"context_line":"        # disk  commands do check the vmdk files.  Therefore simply getting"},{"line_number":549,"context_line":"        # the uuid of a disk will return an error if the vmdk is not"},{"line_number":550,"context_line":"        # properly created  (i.e. the meta-data file is missing or the root"},{"line_number":551,"context_line":"        # file is missing)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATH%2F%2Fymg%3D","line":548,"updated":"2013-10-09 19:03:05.000000000","message":"extra space between \u0027disk\u0027 and \u0027commands\u0027","commit_id":"94d1a8ea49a30105d975b0374784242e47bea7f7"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"535f85baa8b2ba4f8c3a9de9a9c0aaad4654a589","unresolved":false,"context_lines":[{"line_number":1475,"context_line":"            break"},{"line_number":1476,"context_line":"        if task_info.state \u003d\u003d \"error\":"},{"line_number":1477,"context_line":"            return False, False"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"        file_exists \u003d (getattr(task_info.result, \u0027file\u0027, False) and"},{"line_number":1480,"context_line":"                       task_info.result.file[0].path \u003d\u003d file_name)"},{"line_number":1481,"context_line":"        return True, file_exists"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2FeRI%3D","side":"PARENT","line":1478,"updated":"2013-10-15 18:49:26.000000000","message":"You should avoid unnecessary whitespace changes.","commit_id":"9fb39ab5ea477bb383d767f6838981ea9f4307d1"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"2aef51505fc224aeeb35ea0761e5e14278a8940f","unresolved":false,"context_lines":[{"line_number":1475,"context_line":"            break"},{"line_number":1476,"context_line":"        if task_info.state \u003d\u003d \"error\":"},{"line_number":1477,"context_line":"            return False, False"},{"line_number":1478,"context_line":""},{"line_number":1479,"context_line":"        file_exists \u003d (getattr(task_info.result, \u0027file\u0027, False) and"},{"line_number":1480,"context_line":"                       task_info.result.file[0].path \u003d\u003d file_name)"},{"line_number":1481,"context_line":"        return True, file_exists"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2Fd2E%3D","side":"PARENT","line":1478,"in_reply_to":"AAAATH%2F%2FeRI%3D","updated":"2013-10-15 20:09:58.000000000","message":"I actually did not change that line.  I am not sure why it appears like that.","commit_id":"9fb39ab5ea477bb383d767f6838981ea9f4307d1"},{"author":{"_account_id":6722,"name":"ChangBo Guo(gcb)","email":"guochbo@cn.ibm.com","username":"guochbo"},"change_message_id":"56dd6ffd4510d9bc176bf9d77982cb79c076117d","unresolved":false,"context_lines":[{"line_number":541,"context_line":"            LOG.debug(_(\"Powered on the VM instance\"), instance\u003dinstance)"},{"line_number":542,"context_line":"        _power_on_vm()"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def _validate_image(self, dc_ref, folder, file, instance):"},{"line_number":545,"context_line":"        \"\"\"Validate the vmdk file in the given data store and folder.\"\"\""},{"line_number":546,"context_line":"        # The api does not provide a validation command, however the virtual"},{"line_number":547,"context_line":"        # disk commands do check the vmdk files.  Therefore simply getting"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATH%2F%2FS0U%3D","line":544,"updated":"2013-10-18 08:31:56.000000000","message":"Can we just pass instance[\u0027uuid\u0027] to this method ?   That\u0027s also consistent with other method  wiht prefix \u0027_\u0027 .","commit_id":"849ec5e065628cb5a9a906e41228210951a034a0"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"1911bfeb0e336301c318e7e8be54e05c491bdee4","unresolved":false,"context_lines":[{"line_number":541,"context_line":"            LOG.debug(_(\"Powered on the VM instance\"), instance\u003dinstance)"},{"line_number":542,"context_line":"        _power_on_vm()"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def _validate_image(self, dc_ref, folder, file, instance):"},{"line_number":545,"context_line":"        \"\"\"Validate the vmdk file in the given data store and folder.\"\"\""},{"line_number":546,"context_line":"        # The api does not provide a validation command, however the virtual"},{"line_number":547,"context_line":"        # disk commands do check the vmdk files.  Therefore simply getting"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2F3Fc%3D","line":544,"updated":"2013-10-26 16:22:55.000000000","message":"The method name says that we are validating the image. But the code performs some delete operation also. Even though this is a private method I think a method which is supposed to do some read operation should stick to that.","commit_id":"849ec5e065628cb5a9a906e41228210951a034a0"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"1911bfeb0e336301c318e7e8be54e05c491bdee4","unresolved":false,"context_lines":[{"line_number":590,"context_line":"                self._session._wait_for_task(instance[\u0027uuid\u0027],"},{"line_number":591,"context_line":"                                             vmdk_delete_task)"},{"line_number":592,"context_line":"            except Exception as e:"},{"line_number":593,"context_line":"                # Ignore these failures - the file may not exist"},{"line_number":594,"context_line":"                pass"},{"line_number":595,"context_line":"            return False"},{"line_number":596,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2F3FM%3D","line":593,"updated":"2013-10-26 16:22:55.000000000","message":"Do you think a debug log here will be useful later?","commit_id":"849ec5e065628cb5a9a906e41228210951a034a0"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"6156902ffa7abefaaa0d9fe9531167f3034cd31a","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                                                sparse_uploaded_vmdk_path,"},{"line_number":468,"context_line":"                                                dc_ref)"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":"\u003e\u003e\u003e\u003e\u003e\u003e\u003e 017aa72... VMWare - Fix when a image upload is interrupted it\u0027s not cleaned up"},{"line_number":471,"context_line":"            else:"},{"line_number":472,"context_line":"                # linked clone base disk exists"},{"line_number":473,"context_line":"                if disk_type \u003d\u003d \"sparse\":"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FtHE%3D","line":470,"updated":"2013-10-30 07:36:54.000000000","message":"You\u0027ve committed a file conflict.","commit_id":"7896cb7b6a14cfd1fdb3ee52ec6f95125213dfa9"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"6156902ffa7abefaaa0d9fe9531167f3034cd31a","unresolved":false,"context_lines":[{"line_number":1498,"context_line":"        if getattr(task_info.result, \u0027file\u0027, False):"},{"line_number":1499,"context_line":"            for f in task_info.result.file:"},{"line_number":1500,"context_line":"                if f.__class__.__name__ \u003d\u003d \u0027VmDiskFileInfo\u0027:"},{"line_number":1501,"context_line":"                    if f.path \u003d\u003d file_name:"},{"line_number":1502,"context_line":"                        file_exists \u003d True"},{"line_number":1503,"context_line":"                        file_size_in_kb \u003d f.capacityKb"},{"line_number":1504,"context_line":"                        disk_extents \u003d f.diskExtents"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FtG4%3D","line":1501,"updated":"2013-10-30 07:36:54.000000000","message":"Rather than nested ifs, I think you just need an and clause.","commit_id":"7896cb7b6a14cfd1fdb3ee52ec6f95125213dfa9"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"6156902ffa7abefaaa0d9fe9531167f3034cd31a","unresolved":false,"context_lines":[{"line_number":1533,"context_line":"        folder_path \u003d vm_util.build_datastore_path(ds_name, folder_name)"},{"line_number":1534,"context_line":"        folder_exists, file_exists, file_size_in_kb, disk_extents \u003d self\\"},{"line_number":1535,"context_line":"            ._path_file_exists("},{"line_number":1536,"context_line":"                                    ds_browser,folder_path, file_name)"},{"line_number":1537,"context_line":"        if not folder_exists:"},{"line_number":1538,"context_line":"            self._mkdir(vm_util.build_datastore_path(ds_name, folder_name))"},{"line_number":1539,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FtGk%3D","line":1536,"updated":"2013-10-30 07:36:54.000000000","message":"You have very weird wrapping here.","commit_id":"7896cb7b6a14cfd1fdb3ee52ec6f95125213dfa9"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"6156902ffa7abefaaa0d9fe9531167f3034cd31a","unresolved":false,"context_lines":[{"line_number":1539,"context_line":""},{"line_number":1540,"context_line":"        # Make sure the file is ok before saying we can use it."},{"line_number":1541,"context_line":"        if file_exists:"},{"line_number":1542,"context_line":"            if file_size_in_kb !\u003d vmdk_file_size_in_kb:"},{"line_number":1543,"context_line":"                LOG.error(_(\u0027INVALID FILE SIZE - glance shows \u0027"},{"line_number":1544,"context_line":"                            \u0027%(vmdk_file_size_in_kb)s but datastore has \u0027"},{"line_number":1545,"context_line":"                            \u0027%(file_size_in_kb)s - deleting file \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FtGY%3D","line":1542,"updated":"2013-10-30 07:36:54.000000000","message":"And again here - use boolean logic, better than sliced bread :)","commit_id":"7896cb7b6a14cfd1fdb3ee52ec6f95125213dfa9"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"fe9151bd3e5484990a01a551feae5df4b893c1a5","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                    createParentDirectories\u003dFalse)"},{"line_number":1527,"context_line":"        LOG.debug(_(\"Created directory with path %s\") % ds_path)"},{"line_number":1528,"context_line":""},{"line_number":1529,"context_line":"    def _check_if_folder_file_exists(self, dc_ref, ds_ref, ds_name,"},{"line_number":1530,"context_line":"                                     folder_name, file_name,"},{"line_number":1531,"context_line":"                                     vmdk_file_size_in_kb, instance):"},{"line_number":1532,"context_line":"        ds_browser \u003d vim_util.get_dynamic_property("}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2FhbM%3D","line":1529,"updated":"2013-11-02 15:25:10.000000000","message":"Why are we deleting a file inside a check method?","commit_id":"756469fb5c1c776f63879982eb2b9d51b67461de"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"840caf8c2dc9b336e22399abc89c5c8df05a8852","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                    createParentDirectories\u003dFalse)"},{"line_number":1527,"context_line":"        LOG.debug(_(\"Created directory with path %s\") % ds_path)"},{"line_number":1528,"context_line":""},{"line_number":1529,"context_line":"    def _check_if_folder_file_exists(self, dc_ref, ds_ref, ds_name,"},{"line_number":1530,"context_line":"                                     folder_name, file_name,"},{"line_number":1531,"context_line":"                                     vmdk_file_size_in_kb, instance):"},{"line_number":1532,"context_line":"        ds_browser \u003d vim_util.get_dynamic_property("}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2Fgp4%3D","line":1529,"in_reply_to":"AAAATn%2F%2FgrI%3D","updated":"2013-11-03 17:32:41.000000000","message":"The method name hides lots of its implementation.","commit_id":"756469fb5c1c776f63879982eb2b9d51b67461de"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"0bb23d44b84713dae1095d5a92140deffc006ae9","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                    createParentDirectories\u003dFalse)"},{"line_number":1527,"context_line":"        LOG.debug(_(\"Created directory with path %s\") % ds_path)"},{"line_number":1528,"context_line":""},{"line_number":1529,"context_line":"    def _check_if_folder_file_exists(self, dc_ref, ds_ref, ds_name,"},{"line_number":1530,"context_line":"                                     folder_name, file_name,"},{"line_number":1531,"context_line":"                                     vmdk_file_size_in_kb, instance):"},{"line_number":1532,"context_line":"        ds_browser \u003d vim_util.get_dynamic_property("}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2FgrI%3D","line":1529,"in_reply_to":"AAAATn%2F%2FhbM%3D","updated":"2013-11-03 16:49:05.000000000","message":"because we want to clean up the bad file and then upload the file again.","commit_id":"756469fb5c1c776f63879982eb2b9d51b67461de"},{"author":{"_account_id":7400,"name":"Tracy Jones","email":"tjones@vmware.com","username":"tracyajones"},"change_message_id":"ba6717bd44f5f14dc75b69c198b3da4b5fc864b3","unresolved":false,"context_lines":[{"line_number":1527,"context_line":"        LOG.debug(_(\"Created directory with path %s\") % ds_path)"},{"line_number":1528,"context_line":""},{"line_number":1529,"context_line":"    def _check_if_folder_file_exists(self, dc_ref, ds_ref, ds_name,"},{"line_number":1530,"context_line":"                                     folder_name, file_name,"},{"line_number":1531,"context_line":"                                     vmdk_file_size_in_kb, instance):"},{"line_number":1532,"context_line":"        ds_browser \u003d vim_util.get_dynamic_property("},{"line_number":1533,"context_line":"                                self._session._get_vim(),"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2Fe%2FM%3D","line":1530,"updated":"2013-11-04 23:59:17.000000000","message":"true - i\u0027ll change the name to include \"validate\" :-)","commit_id":"756469fb5c1c776f63879982eb2b9d51b67461de"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"96a4d1cab213ce98c3881737715bce58464e5bb9","unresolved":false,"context_lines":[{"line_number":1510,"context_line":"                    disk_extents \u003d f.diskExtents"},{"line_number":1511,"context_line":"                    break"},{"line_number":1512,"context_line":""},{"line_number":1513,"context_line":"        return True, file_exists, file_size_in_kb, disk_extents"},{"line_number":1514,"context_line":""},{"line_number":1515,"context_line":"    def _mkdir(self, ds_path):"},{"line_number":1516,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FHuI%3D","line":1513,"updated":"2013-11-14 06:45:02.000000000","message":"In place of returning 4 long-named arguments, you could return an object as the second element here. If that object contained attributes for \u0027size_kb\u0027 and \u0027disk_extents\u0027 that would cover your use case I believe.\n\nIf the file does not exist, you could return None instead of such an object.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"735f71cd907fbf64e9566bf639fb467fbb99ab65","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                    createParentDirectories\u003dFalse)"},{"line_number":1527,"context_line":"        LOG.debug(_(\"Created directory with path %s\") % ds_path)"},{"line_number":1528,"context_line":""},{"line_number":1529,"context_line":"    def _check_and_validate_if_folder_file_exists(self, dc_ref, ds_ref,"},{"line_number":1530,"context_line":"                                                  ds_name, folder_name,"},{"line_number":1531,"context_line":"                                                  file_name,"},{"line_number":1532,"context_line":"                                                  vmdk_file_size_in_kb,"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FU%2B0%3D","line":1529,"updated":"2013-11-10 15:12:54.000000000","message":"Better have a unit test for this to test against your change","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":8334,"name":"Noorul Islam K M","email":"noorul@noorul.com","username":"noorul"},"change_message_id":"12af210d6a83ae5c62c434adb76706f9ec0b2e7b","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                    createParentDirectories\u003dFalse)"},{"line_number":1527,"context_line":"        LOG.debug(_(\"Created directory with path %s\") % ds_path)"},{"line_number":1528,"context_line":""},{"line_number":1529,"context_line":"    def _check_and_validate_if_folder_file_exists(self, dc_ref, ds_ref,"},{"line_number":1530,"context_line":"                                                  ds_name, folder_name,"},{"line_number":1531,"context_line":"                                                  file_name,"},{"line_number":1532,"context_line":"                                                  vmdk_file_size_in_kb,"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FLcY%3D","line":1529,"updated":"2013-11-13 09:53:11.000000000","message":"Still I think the delete action is hidden.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":7494,"name":"Guangya Liu","email":"gyliu513@gmail.com","username":"JayLau"},"change_message_id":"735f71cd907fbf64e9566bf639fb467fbb99ab65","unresolved":false,"context_lines":[{"line_number":1539,"context_line":"        # Check if the folder exists or not. If not, create one"},{"line_number":1540,"context_line":"        # Check if the file exists or not."},{"line_number":1541,"context_line":"        folder_path \u003d vm_util.build_datastore_path(ds_name, folder_name)"},{"line_number":1542,"context_line":"        folder_exists, file_exists, file_size_in_kb, disk_extents \u003d \\"},{"line_number":1543,"context_line":"            self._path_file_exists(ds_browser, folder_path, file_name)"},{"line_number":1544,"context_line":""},{"line_number":1545,"context_line":"        if not folder_exists:"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FU%2B4%3D","line":1542,"updated":"2013-11-10 15:12:54.000000000","message":"Do not use \"\\\" but use \"()\" instead.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"96a4d1cab213ce98c3881737715bce58464e5bb9","unresolved":false,"context_lines":[{"line_number":1539,"context_line":"        # Check if the folder exists or not. If not, create one"},{"line_number":1540,"context_line":"        # Check if the file exists or not."},{"line_number":1541,"context_line":"        folder_path \u003d vm_util.build_datastore_path(ds_name, folder_name)"},{"line_number":1542,"context_line":"        folder_exists, file_exists, file_size_in_kb, disk_extents \u003d \\"},{"line_number":1543,"context_line":"            self._path_file_exists(ds_browser, folder_path, file_name)"},{"line_number":1544,"context_line":""},{"line_number":1545,"context_line":"        if not folder_exists:"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FHuw%3D","line":1542,"in_reply_to":"AAAATn%2F%2FImA%3D","updated":"2013-11-14 06:45:02.000000000","message":"Perhaps the problem here is that this function is doing too much? Or it should be returning something more structured than a tuple?\n\nSee notes above for a suggestion that might serve as a starting point.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"363dba3cfa2597194d6d5caf799f8648934bc513","unresolved":false,"context_lines":[{"line_number":1539,"context_line":"        # Check if the folder exists or not. If not, create one"},{"line_number":1540,"context_line":"        # Check if the file exists or not."},{"line_number":1541,"context_line":"        folder_path \u003d vm_util.build_datastore_path(ds_name, folder_name)"},{"line_number":1542,"context_line":"        folder_exists, file_exists, file_size_in_kb, disk_extents \u003d \\"},{"line_number":1543,"context_line":"            self._path_file_exists(ds_browser, folder_path, file_name)"},{"line_number":1544,"context_line":""},{"line_number":1545,"context_line":"        if not folder_exists:"}],"source_content_type":"text/x-python","patch_set":15,"id":"AAAATn%2F%2FImA%3D","line":1542,"in_reply_to":"AAAATn%2F%2FU%2B4%3D","updated":"2013-11-14 00:30:30.000000000","message":"\\ is entirely fine here. There is no community consensus around \\ vs () - it\u0027s fine to say that you think one or the other will look better, but there is no requirement that it be either way.","commit_id":"c58622aa333a5f9889ae877a51497151b398c100"}]}
