)]}'
{"manila/share/drivers/hpe/hpe_3par_driver.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"33c2952367b39d88bc5b247e6d4106da503bd33f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"               deprecated_name\u003d\u0027hp3par_cifs_admin_access_username\u0027),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027hpe3par_cifs_admin_access_password\u0027,"},{"line_number":93,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":94,"context_line":"               help\u003d\"File system admin password name for CIFS.\","},{"line_number":95,"context_line":"               secret\u003dTrue,"},{"line_number":96,"context_line":"               deprecated_name\u003d\u0027hp3par_cifs_admin_access_password\u0027),"},{"line_number":97,"context_line":"    cfg.StrOpt(\u0027hpe3par_cifs_admin_access_domain\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_6d6aa6b4","line":94,"range":{"start_line":94,"start_character":39,"end_line":94,"end_character":53},"updated":"2016-03-10 03:52:01.000000000","message":"password name or password?","commit_id":"6fa7612882ab70abd2a8fd8b4525e5df87111381"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"0cde670237d109d731f903a83b7e54cd5a1de7da","unresolved":false,"context_lines":[{"line_number":91,"context_line":"               deprecated_name\u003d\u0027hp3par_cifs_admin_access_username\u0027),"},{"line_number":92,"context_line":"    cfg.StrOpt(\u0027hpe3par_cifs_admin_access_password\u0027,"},{"line_number":93,"context_line":"               default\u003d\u0027\u0027,"},{"line_number":94,"context_line":"               help\u003d\"File system admin password name for CIFS.\","},{"line_number":95,"context_line":"               secret\u003dTrue,"},{"line_number":96,"context_line":"               deprecated_name\u003d\u0027hp3par_cifs_admin_access_password\u0027),"},{"line_number":97,"context_line":"    cfg.StrOpt(\u0027hpe3par_cifs_admin_access_domain\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_014e2fc0","line":94,"range":{"start_line":94,"start_character":39,"end_line":94,"end_character":53},"in_reply_to":"5aef4532_6d6aa6b4","updated":"2016-03-10 15:32:54.000000000","message":"Password, fixed.","commit_id":"6fa7612882ab70abd2a8fd8b4525e5df87111381"}],"manila/share/drivers/hpe/hpe_3par_mediator.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"33c2952367b39d88bc5b247e6d4106da503bd33f","unresolved":false,"context_lines":[{"line_number":721,"context_line":"                                               vfs,"},{"line_number":722,"context_line":"                                               SUPER_SHARE,"},{"line_number":723,"context_line":"                                               **createfshare_kwargs)"},{"line_number":724,"context_line":"            LOG.debug(\"createfshare result\u003d%s\", result)"},{"line_number":725,"context_line":"        except Exception as e:"},{"line_number":726,"context_line":"            msg \u003d (_(\u0027Failed to create share %(share_name)s: %(e)s\u0027) %"},{"line_number":727,"context_line":"                   {\u0027share_name\u0027: SUPER_SHARE, \u0027e\u0027: six.text_type(e)})"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_2d0a5e79","line":724,"range":{"start_line":724,"start_character":23,"end_line":724,"end_character":37},"updated":"2016-03-10 03:52:01.000000000","message":"Log the share name here","commit_id":"6fa7612882ab70abd2a8fd8b4525e5df87111381"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"0cde670237d109d731f903a83b7e54cd5a1de7da","unresolved":false,"context_lines":[{"line_number":721,"context_line":"                                               vfs,"},{"line_number":722,"context_line":"                                               SUPER_SHARE,"},{"line_number":723,"context_line":"                                               **createfshare_kwargs)"},{"line_number":724,"context_line":"            LOG.debug(\"createfshare result\u003d%s\", result)"},{"line_number":725,"context_line":"        except Exception as e:"},{"line_number":726,"context_line":"            msg \u003d (_(\u0027Failed to create share %(share_name)s: %(e)s\u0027) %"},{"line_number":727,"context_line":"                   {\u0027share_name\u0027: SUPER_SHARE, \u0027e\u0027: six.text_type(e)})"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_8944254a","line":724,"range":{"start_line":724,"start_character":23,"end_line":724,"end_character":37},"in_reply_to":"5aef4532_2d0a5e79","updated":"2016-03-10 15:32:54.000000000","message":"Done","commit_id":"6fa7612882ab70abd2a8fd8b4525e5df87111381"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"33c2952367b39d88bc5b247e6d4106da503bd33f","unresolved":false,"context_lines":[{"line_number":726,"context_line":"            msg \u003d (_(\u0027Failed to create share %(share_name)s: %(e)s\u0027) %"},{"line_number":727,"context_line":"                   {\u0027share_name\u0027: SUPER_SHARE, \u0027e\u0027: six.text_type(e)})"},{"line_number":728,"context_line":"            LOG.exception(msg)"},{"line_number":729,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"        # If the share is CIFS, we need to grant access to the specified admin."},{"line_number":732,"context_line":"        if protocol \u003d\u003d \u0027smb\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_05f77a59","line":729,"range":{"start_line":729,"start_character":28,"end_line":729,"end_character":49},"updated":"2016-03-10 03:52:01.000000000","message":"https://github.com/openstack/manila/blob/master/manila/exception.py#L444\nexception.ShareBackendException(msg\u003dmsg)","commit_id":"6fa7612882ab70abd2a8fd8b4525e5df87111381"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"0cde670237d109d731f903a83b7e54cd5a1de7da","unresolved":false,"context_lines":[{"line_number":726,"context_line":"            msg \u003d (_(\u0027Failed to create share %(share_name)s: %(e)s\u0027) %"},{"line_number":727,"context_line":"                   {\u0027share_name\u0027: SUPER_SHARE, \u0027e\u0027: six.text_type(e)})"},{"line_number":728,"context_line":"            LOG.exception(msg)"},{"line_number":729,"context_line":"            raise exception.ShareBackendException(msg)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"        # If the share is CIFS, we need to grant access to the specified admin."},{"line_number":732,"context_line":"        if protocol \u003d\u003d \u0027smb\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_c161e706","line":729,"range":{"start_line":729,"start_character":28,"end_line":729,"end_character":49},"in_reply_to":"5aef4532_05f77a59","updated":"2016-03-10 15:32:54.000000000","message":"Done","commit_id":"6fa7612882ab70abd2a8fd8b4525e5df87111381"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78b8e03cb872d2a59eb43816f2314b43e26b91c4","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"        if not self.hpe3par_fstore_per_share:"},{"line_number":659,"context_line":"            # We need to remove file tree on delete when using nested shares."},{"line_number":660,"context_line":"            self._delete_file_tree(protocol, fpg, vfs, fstore, share_name)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        if fstore \u003d\u003d share_name:"},{"line_number":663,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_c6544fcb","line":660,"range":{"start_line":660,"start_character":35,"end_line":660,"end_character":73},"updated":"2016-03-10 18:59:29.000000000","message":"arg order (share_name, protocol, fpg, vfs, fstore) would be more consistent with the other methods (was trying to keep the manila stuff project|share-name-or-id|protocol first and internal 3par stuff fpg,vfs,fstore tacked on end.","commit_id":"4957a96f5d8f5e206501a13c63e419988d6f65f5"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"921430f6ba20558047a377f1f30343bc8f1627ac","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"        if not self.hpe3par_fstore_per_share:"},{"line_number":659,"context_line":"            # We need to remove file tree on delete when using nested shares."},{"line_number":660,"context_line":"            self._delete_file_tree(protocol, fpg, vfs, fstore, share_name)"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        if fstore \u003d\u003d share_name:"},{"line_number":663,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_c14d59c5","line":660,"range":{"start_line":660,"start_character":35,"end_line":660,"end_character":73},"in_reply_to":"5aef4532_c6544fcb","updated":"2016-03-10 19:34:27.000000000","message":"Done","commit_id":"4957a96f5d8f5e206501a13c63e419988d6f65f5"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78b8e03cb872d2a59eb43816f2314b43e26b91c4","unresolved":false,"context_lines":[{"line_number":680,"context_line":"                            \"properly deleted.\"))"},{"line_number":681,"context_line":"            return"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"        mount_location \u003d \"/mnt/%s\" % share_name"},{"line_number":684,"context_line":"        share_location \u003d mount_location + \"/%s\" % share_name"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        # Create the super share."}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_66245b0c","line":683,"range":{"start_line":683,"start_character":26,"end_line":683,"end_character":31},"updated":"2016-03-10 18:59:29.000000000","message":"Let\u0027s make this configurable.","commit_id":"4957a96f5d8f5e206501a13c63e419988d6f65f5"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"921430f6ba20558047a377f1f30343bc8f1627ac","unresolved":false,"context_lines":[{"line_number":680,"context_line":"                            \"properly deleted.\"))"},{"line_number":681,"context_line":"            return"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"        mount_location \u003d \"/mnt/%s\" % share_name"},{"line_number":684,"context_line":"        share_location \u003d mount_location + \"/%s\" % share_name"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        # Create the super share."}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_dcc1c0e5","line":683,"range":{"start_line":683,"start_character":26,"end_line":683,"end_character":31},"in_reply_to":"5aef4532_66245b0c","updated":"2016-03-10 19:34:27.000000000","message":"I have created a new config option of hpe3par_share_mount_path for now with a default value of /mnt/. I could not find an existing config option, but I can use that if I do.","commit_id":"4957a96f5d8f5e206501a13c63e419988d6f65f5"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78b8e03cb872d2a59eb43816f2314b43e26b91c4","unresolved":false,"context_lines":[{"line_number":681,"context_line":"            return"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"        mount_location \u003d \"/mnt/%s\" % share_name"},{"line_number":684,"context_line":"        share_location \u003d mount_location + \"/%s\" % share_name"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        # Create the super share."},{"line_number":687,"context_line":"        self._create_super_share(protocol, fpg, vfs, fstore)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_06075782","line":684,"range":{"start_line":684,"start_character":8,"end_line":684,"end_character":22},"updated":"2016-03-10 18:59:29.000000000","message":"share_dir would make this easier for me to read. Do you agree?","commit_id":"4957a96f5d8f5e206501a13c63e419988d6f65f5"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"921430f6ba20558047a377f1f30343bc8f1627ac","unresolved":false,"context_lines":[{"line_number":681,"context_line":"            return"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"        mount_location \u003d \"/mnt/%s\" % share_name"},{"line_number":684,"context_line":"        share_location \u003d mount_location + \"/%s\" % share_name"},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        # Create the super share."},{"line_number":687,"context_line":"        self._create_super_share(protocol, fpg, vfs, fstore)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_c1fb9945","line":684,"range":{"start_line":684,"start_character":8,"end_line":684,"end_character":22},"in_reply_to":"5aef4532_06075782","updated":"2016-03-10 19:34:27.000000000","message":"Done","commit_id":"4957a96f5d8f5e206501a13c63e419988d6f65f5"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"78b8e03cb872d2a59eb43816f2314b43e26b91c4","unresolved":false,"context_lines":[{"line_number":715,"context_line":""},{"line_number":716,"context_line":"        # If the share is NFS, we need to give the host access to the share in"},{"line_number":717,"context_line":"        # order to properly mount it."},{"line_number":718,"context_line":"        if protocol \u003d\u003d \u0027nfs\u0027:"},{"line_number":719,"context_line":"            createfshare_kwargs[\u0027clientip\u0027] \u003d self.my_ip"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_c6572f24","line":718,"range":{"start_line":718,"start_character":8,"end_line":718,"end_character":29},"updated":"2016-03-10 18:59:29.000000000","message":"I think we should secure this admin share by IP for CIFS too.  There it is \u0027allowip\u0027 instead of \u0027clientip\u0027.","commit_id":"4957a96f5d8f5e206501a13c63e419988d6f65f5"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"921430f6ba20558047a377f1f30343bc8f1627ac","unresolved":false,"context_lines":[{"line_number":715,"context_line":""},{"line_number":716,"context_line":"        # If the share is NFS, we need to give the host access to the share in"},{"line_number":717,"context_line":"        # order to properly mount it."},{"line_number":718,"context_line":"        if protocol \u003d\u003d \u0027nfs\u0027:"},{"line_number":719,"context_line":"            createfshare_kwargs[\u0027clientip\u0027] \u003d self.my_ip"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_419e6907","line":718,"range":{"start_line":718,"start_character":8,"end_line":718,"end_character":29},"in_reply_to":"5aef4532_c6572f24","updated":"2016-03-10 19:34:27.000000000","message":"Done","commit_id":"4957a96f5d8f5e206501a13c63e419988d6f65f5"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"a9c643b1fe0882036bc56f8962a86740a17bdfce","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            self._delete_share(share_name_ro, protocol, fpg, vfs, fstore)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        if not self.hpe3par_fstore_per_share:"},{"line_number":660,"context_line":"            # We need to remove file tree on delete when using nested shares."},{"line_number":661,"context_line":"            self._delete_file_tree(share_name, protocol, fpg, vfs, fstore)"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        if fstore \u003d\u003d share_name:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_b0095ee0","line":660,"range":{"start_line":660,"start_character":17,"end_line":660,"end_character":21},"updated":"2016-03-15 13:34:17.000000000","message":"\"Need to\", so I assume if it does not work, an exception should be thrown.","commit_id":"58513eb823f8cc8f4d6261b54ef7603082119225"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"2ef23a5276dac90616f8f1bfdd9ba8d835966d8b","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            self._delete_share(share_name_ro, protocol, fpg, vfs, fstore)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        if not self.hpe3par_fstore_per_share:"},{"line_number":660,"context_line":"            # We need to remove file tree on delete when using nested shares."},{"line_number":661,"context_line":"            self._delete_file_tree(share_name, protocol, fpg, vfs, fstore)"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        if fstore \u003d\u003d share_name:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_81416c3c","line":660,"range":{"start_line":660,"start_character":17,"end_line":660,"end_character":21},"in_reply_to":"1af94dfe_b0095ee0","updated":"2016-03-15 16:22:01.000000000","message":"I should change the phrasing here. In the original patch sets, I was raising an exception when things had errors. We found an issue where if the device that was trying to mount the share did not have NFS or CIFS properly installed, everything would error out. There is no need to create an error when deleting a share, instead just allow Manila to continue to delete the share.","commit_id":"58513eb823f8cc8f4d6261b54ef7603082119225"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"a9c643b1fe0882036bc56f8962a86740a17bdfce","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        # return out and log a warning."},{"line_number":676,"context_line":"        if protocol \u003d\u003d \"smb\" and (not self.hpe3par_cifs_admin_access_username"},{"line_number":677,"context_line":"           or not self.hpe3par_cifs_admin_access_password):"},{"line_number":678,"context_line":"            LOG.warning(_LW(\"hpe3par_cifs_admin_access_username and \""},{"line_number":679,"context_line":"                            \"hpe3par_cifs_admin_access_password must be \""},{"line_number":680,"context_line":"                            \"provided in order for the file tree to be \""},{"line_number":681,"context_line":"                            \"properly deleted.\"))"},{"line_number":682,"context_line":"            return"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        mount_location \u003d \"%s%s\" % (self.hpe3par_share_mount_path, share_name)"},{"line_number":685,"context_line":"        share_dir \u003d mount_location + \"/%s\" % share_name"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_901a6216","line":682,"range":{"start_line":678,"start_character":11,"end_line":682,"end_character":18},"updated":"2016-03-15 13:34:17.000000000","message":"I guess you should be throwing an exception here no? if you need to remove, you will not be removing anything if you just return.","commit_id":"58513eb823f8cc8f4d6261b54ef7603082119225"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"2ef23a5276dac90616f8f1bfdd9ba8d835966d8b","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        # return out and log a warning."},{"line_number":676,"context_line":"        if protocol \u003d\u003d \"smb\" and (not self.hpe3par_cifs_admin_access_username"},{"line_number":677,"context_line":"           or not self.hpe3par_cifs_admin_access_password):"},{"line_number":678,"context_line":"            LOG.warning(_LW(\"hpe3par_cifs_admin_access_username and \""},{"line_number":679,"context_line":"                            \"hpe3par_cifs_admin_access_password must be \""},{"line_number":680,"context_line":"                            \"provided in order for the file tree to be \""},{"line_number":681,"context_line":"                            \"properly deleted.\"))"},{"line_number":682,"context_line":"            return"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"        mount_location \u003d \"%s%s\" % (self.hpe3par_share_mount_path, share_name)"},{"line_number":685,"context_line":"        share_dir \u003d mount_location + \"/%s\" % share_name"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_962530c4","line":682,"range":{"start_line":678,"start_character":11,"end_line":682,"end_character":18},"in_reply_to":"1af94dfe_901a6216","updated":"2016-03-15 16:22:01.000000000","message":"See above comment.","commit_id":"58513eb823f8cc8f4d6261b54ef7603082119225"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"a9c643b1fe0882036bc56f8962a86740a17bdfce","unresolved":false,"context_lines":[{"line_number":726,"context_line":"                                               vfs,"},{"line_number":727,"context_line":"                                               SUPER_SHARE,"},{"line_number":728,"context_line":"                                               **createfshare_kwargs)"},{"line_number":729,"context_line":"            LOG.debug((\"createfshare for %(name)s, result\u003d%(result)s\") %"},{"line_number":730,"context_line":"                      {\u0027name\u0027: SUPER_SHARE,"},{"line_number":731,"context_line":"                       \u0027result\u0027: result})"},{"line_number":732,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_7073564e","line":729,"range":{"start_line":729,"start_character":71,"end_line":729,"end_character":72},"updated":"2016-03-15 13:34:17.000000000","message":"use a comma here","commit_id":"58513eb823f8cc8f4d6261b54ef7603082119225"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"a9c643b1fe0882036bc56f8962a86740a17bdfce","unresolved":false,"context_lines":[{"line_number":726,"context_line":"                                               vfs,"},{"line_number":727,"context_line":"                                               SUPER_SHARE,"},{"line_number":728,"context_line":"                                               **createfshare_kwargs)"},{"line_number":729,"context_line":"            LOG.debug((\"createfshare for %(name)s, result\u003d%(result)s\") %"},{"line_number":730,"context_line":"                      {\u0027name\u0027: SUPER_SHARE,"},{"line_number":731,"context_line":"                       \u0027result\u0027: result})"},{"line_number":732,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_b0931e4f","line":729,"range":{"start_line":729,"start_character":21,"end_line":729,"end_character":23},"updated":"2016-03-15 13:34:17.000000000","message":"you don\u0027t need two parenthesis here if you use comma","commit_id":"58513eb823f8cc8f4d6261b54ef7603082119225"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"2ef23a5276dac90616f8f1bfdd9ba8d835966d8b","unresolved":false,"context_lines":[{"line_number":726,"context_line":"                                               vfs,"},{"line_number":727,"context_line":"                                               SUPER_SHARE,"},{"line_number":728,"context_line":"                                               **createfshare_kwargs)"},{"line_number":729,"context_line":"            LOG.debug((\"createfshare for %(name)s, result\u003d%(result)s\") %"},{"line_number":730,"context_line":"                      {\u0027name\u0027: SUPER_SHARE,"},{"line_number":731,"context_line":"                       \u0027result\u0027: result})"},{"line_number":732,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_81684cbc","line":729,"range":{"start_line":729,"start_character":71,"end_line":729,"end_character":72},"in_reply_to":"1af94dfe_7073564e","updated":"2016-03-15 16:22:01.000000000","message":"Done","commit_id":"58513eb823f8cc8f4d6261b54ef7603082119225"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"2ef23a5276dac90616f8f1bfdd9ba8d835966d8b","unresolved":false,"context_lines":[{"line_number":726,"context_line":"                                               vfs,"},{"line_number":727,"context_line":"                                               SUPER_SHARE,"},{"line_number":728,"context_line":"                                               **createfshare_kwargs)"},{"line_number":729,"context_line":"            LOG.debug((\"createfshare for %(name)s, result\u003d%(result)s\") %"},{"line_number":730,"context_line":"                      {\u0027name\u0027: SUPER_SHARE,"},{"line_number":731,"context_line":"                       \u0027result\u0027: result})"},{"line_number":732,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1af94dfe_217338b3","line":729,"range":{"start_line":729,"start_character":21,"end_line":729,"end_character":23},"in_reply_to":"1af94dfe_b0931e4f","updated":"2016-03-15 16:22:01.000000000","message":"Done","commit_id":"58513eb823f8cc8f4d6261b54ef7603082119225"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":678,"context_line":"        # return out and log a warning."},{"line_number":679,"context_line":"        if protocol \u003d\u003d \"smb\" and (not self.hpe3par_cifs_admin_access_username"},{"line_number":680,"context_line":"           or not self.hpe3par_cifs_admin_access_password):"},{"line_number":681,"context_line":"            LOG.warning(_LW(\"hpe3par_cifs_admin_access_username and \""},{"line_number":682,"context_line":"                            \"hpe3par_cifs_admin_access_password must be \""},{"line_number":683,"context_line":"                            \"provided in order for the file tree to be \""},{"line_number":684,"context_line":"                            \"properly deleted.\"))"},{"line_number":685,"context_line":"            return"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"        mount_location \u003d \"%s%s\" % (self.hpe3par_share_mount_path, share_name)"},{"line_number":688,"context_line":"        share_dir \u003d mount_location + \"/%s\" % share_name"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_25ae9685","line":685,"range":{"start_line":681,"start_character":0,"end_line":685,"end_character":18},"updated":"2016-03-15 20:34:52.000000000","message":"Not covered by unit test.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":678,"context_line":"        # return out and log a warning."},{"line_number":679,"context_line":"        if protocol \u003d\u003d \"smb\" and (not self.hpe3par_cifs_admin_access_username"},{"line_number":680,"context_line":"           or not self.hpe3par_cifs_admin_access_password):"},{"line_number":681,"context_line":"            LOG.warning(_LW(\"hpe3par_cifs_admin_access_username and \""},{"line_number":682,"context_line":"                            \"hpe3par_cifs_admin_access_password must be \""},{"line_number":683,"context_line":"                            \"provided in order for the file tree to be \""},{"line_number":684,"context_line":"                            \"properly deleted.\"))"},{"line_number":685,"context_line":"            return"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"        mount_location \u003d \"%s%s\" % (self.hpe3par_share_mount_path, share_name)"},{"line_number":688,"context_line":"        share_dir \u003d mount_location + \"/%s\" % share_name"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_2e1b131d","line":685,"range":{"start_line":681,"start_character":0,"end_line":685,"end_character":18},"in_reply_to":"1af94dfe_25ae9685","updated":"2016-03-15 21:32:30.000000000","message":"Cover shows this is being tested.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"c3a3877f90e6c73a8b4cb1d2694b81c3242498e1","unresolved":false,"context_lines":[{"line_number":678,"context_line":"        # return out and log a warning."},{"line_number":679,"context_line":"        if protocol \u003d\u003d \"smb\" and (not self.hpe3par_cifs_admin_access_username"},{"line_number":680,"context_line":"           or not self.hpe3par_cifs_admin_access_password):"},{"line_number":681,"context_line":"            LOG.warning(_LW(\"hpe3par_cifs_admin_access_username and \""},{"line_number":682,"context_line":"                            \"hpe3par_cifs_admin_access_password must be \""},{"line_number":683,"context_line":"                            \"provided in order for the file tree to be \""},{"line_number":684,"context_line":"                            \"properly deleted.\"))"},{"line_number":685,"context_line":"            return"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"        mount_location \u003d \"%s%s\" % (self.hpe3par_share_mount_path, share_name)"},{"line_number":688,"context_line":"        share_dir \u003d mount_location + \"/%s\" % share_name"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_9757d301","line":685,"range":{"start_line":681,"start_character":0,"end_line":685,"end_character":18},"in_reply_to":"1af94dfe_2e1b131d","updated":"2016-03-16 02:06:18.000000000","message":"Hi, Alex.  This piques my interest, so let\u0027s try to resolve this disconnect, since others can benefit as well.\n\nI\u0027m using PyCharm, which shows unit test coverage for each line, and the highlighted section (lines 681-685) appear not to be covered.  I have also run your unit tests in the PyCharm debugger; doing so shows that a breakpoint on line 679 is hit multiple times but a breakpoint on line 681 is never hit.  This makes sense, because you set both hpe3par_cifs_admin_access_username and hpe3par_cifs_admin_access_password in setUp(), and no unit tests appear to clear their values.  So I don\u0027t see how lines 681-685 could have been covered.\n\nAs an aside, I don\u0027t recommend unit testing complex methods such as _delete_file_tree indirectly via other unit tests.  It would be much simpler to achieve full coverage of _delete_file_tree by unit testing it directly instead of numerous calls to delete_share.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"caf4c73e24404fda043a9167e7c95957468f4809","unresolved":false,"context_lines":[{"line_number":678,"context_line":"        # return out and log a warning."},{"line_number":679,"context_line":"        if protocol \u003d\u003d \"smb\" and (not self.hpe3par_cifs_admin_access_username"},{"line_number":680,"context_line":"           or not self.hpe3par_cifs_admin_access_password):"},{"line_number":681,"context_line":"            LOG.warning(_LW(\"hpe3par_cifs_admin_access_username and \""},{"line_number":682,"context_line":"                            \"hpe3par_cifs_admin_access_password must be \""},{"line_number":683,"context_line":"                            \"provided in order for the file tree to be \""},{"line_number":684,"context_line":"                            \"properly deleted.\"))"},{"line_number":685,"context_line":"            return"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":"        mount_location \u003d \"%s%s\" % (self.hpe3par_share_mount_path, share_name)"},{"line_number":688,"context_line":"        share_dir \u003d mount_location + \"/%s\" % share_name"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_08b1c1e1","line":685,"range":{"start_line":681,"start_character":0,"end_line":685,"end_character":18},"in_reply_to":"1af94dfe_9757d301","updated":"2016-03-16 15:44:57.000000000","message":"Strange, I was looking at the report generated by tox -e cover. But I do see how this would never get called...\n\nAnyway, I added a new unit test, test__delete_file_tree_error, that sets hpe3par_cifs_admin_access_username to None before making the call to _delete_file_tree. These lines are now covered. Please see patch set #12.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":730,"context_line":"                                               SUPER_SHARE,"},{"line_number":731,"context_line":"                                               **createfshare_kwargs)"},{"line_number":732,"context_line":"            LOG.debug(\"createfshare for %(name)s, result\u003d%(result)s\","},{"line_number":733,"context_line":"                      {\u0027name\u0027: SUPER_SHARE,"},{"line_number":734,"context_line":"                       \u0027result\u0027: result})"},{"line_number":735,"context_line":"        except Exception as e:"},{"line_number":736,"context_line":"            msg \u003d (_(\u0027Failed to create share %(share_name)s: %(e)s\u0027) %"},{"line_number":737,"context_line":"                   {\u0027share_name\u0027: SUPER_SHARE, \u0027e\u0027: six.text_type(e)})"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_6579befc","line":734,"range":{"start_line":733,"start_character":22,"end_line":734,"end_character":41},"updated":"2016-03-15 20:34:52.000000000","message":"Please unwrap.  This dict fits on one line.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":730,"context_line":"                                               SUPER_SHARE,"},{"line_number":731,"context_line":"                                               **createfshare_kwargs)"},{"line_number":732,"context_line":"            LOG.debug(\"createfshare for %(name)s, result\u003d%(result)s\","},{"line_number":733,"context_line":"                      {\u0027name\u0027: SUPER_SHARE,"},{"line_number":734,"context_line":"                       \u0027result\u0027: result})"},{"line_number":735,"context_line":"        except Exception as e:"},{"line_number":736,"context_line":"            msg \u003d (_(\u0027Failed to create share %(share_name)s: %(e)s\u0027) %"},{"line_number":737,"context_line":"                   {\u0027share_name\u0027: SUPER_SHARE, \u0027e\u0027: six.text_type(e)})"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_c8c70744","line":734,"range":{"start_line":733,"start_character":22,"end_line":734,"end_character":41},"in_reply_to":"1af94dfe_6579befc","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":732,"context_line":"            LOG.debug(\"createfshare for %(name)s, result\u003d%(result)s\","},{"line_number":733,"context_line":"                      {\u0027name\u0027: SUPER_SHARE,"},{"line_number":734,"context_line":"                       \u0027result\u0027: result})"},{"line_number":735,"context_line":"        except Exception as e:"},{"line_number":736,"context_line":"            msg \u003d (_(\u0027Failed to create share %(share_name)s: %(e)s\u0027) %"},{"line_number":737,"context_line":"                   {\u0027share_name\u0027: SUPER_SHARE, \u0027e\u0027: six.text_type(e)})"},{"line_number":738,"context_line":"            LOG.exception(msg)"},{"line_number":739,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        # If the share is CIFS, we need to grant access to the specified admin."},{"line_number":742,"context_line":"        if protocol \u003d\u003d \u0027smb\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_a5b0e6de","line":739,"range":{"start_line":735,"start_character":8,"end_line":739,"end_character":58},"updated":"2016-03-15 20:34:52.000000000","message":"Not covered by unit test.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":732,"context_line":"            LOG.debug(\"createfshare for %(name)s, result\u003d%(result)s\","},{"line_number":733,"context_line":"                      {\u0027name\u0027: SUPER_SHARE,"},{"line_number":734,"context_line":"                       \u0027result\u0027: result})"},{"line_number":735,"context_line":"        except Exception as e:"},{"line_number":736,"context_line":"            msg \u003d (_(\u0027Failed to create share %(share_name)s: %(e)s\u0027) %"},{"line_number":737,"context_line":"                   {\u0027share_name\u0027: SUPER_SHARE, \u0027e\u0027: six.text_type(e)})"},{"line_number":738,"context_line":"            LOG.exception(msg)"},{"line_number":739,"context_line":"            raise exception.ShareBackendException(msg\u003dmsg)"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"        # If the share is CIFS, we need to grant access to the specified admin."},{"line_number":742,"context_line":"        if protocol \u003d\u003d \u0027smb\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_cef6efd6","line":739,"range":{"start_line":735,"start_character":8,"end_line":739,"end_character":58},"in_reply_to":"1af94dfe_a5b0e6de","updated":"2016-03-15 21:32:30.000000000","message":"Cover shows this is being tested.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":745,"context_line":"                \u0027fpg\u0027: fpg,"},{"line_number":746,"context_line":"                \u0027fstore\u0027: fstore,"},{"line_number":747,"context_line":"                \u0027comment\u0027: comment,"},{"line_number":748,"context_line":"                \u0027allowperm\u0027: user}"},{"line_number":749,"context_line":"            try:"},{"line_number":750,"context_line":"                result \u003d self._client.setfshare("},{"line_number":751,"context_line":"                    protocol, vfs, SUPER_SHARE, **setfshare_kwargs)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_4565a243","line":748,"range":{"start_line":748,"start_character":33,"end_line":748,"end_character":34},"updated":"2016-03-15 20:34:52.000000000","message":"Please add comma and move brace to next line per the guidelines.\n\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":745,"context_line":"                \u0027fpg\u0027: fpg,"},{"line_number":746,"context_line":"                \u0027fstore\u0027: fstore,"},{"line_number":747,"context_line":"                \u0027comment\u0027: comment,"},{"line_number":748,"context_line":"                \u0027allowperm\u0027: user}"},{"line_number":749,"context_line":"            try:"},{"line_number":750,"context_line":"                result \u003d self._client.setfshare("},{"line_number":751,"context_line":"                    protocol, vfs, SUPER_SHARE, **setfshare_kwargs)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_a8e71be3","line":748,"range":{"start_line":748,"start_character":33,"end_line":748,"end_character":34},"in_reply_to":"1af94dfe_4565a243","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":749,"context_line":"            try:"},{"line_number":750,"context_line":"                result \u003d self._client.setfshare("},{"line_number":751,"context_line":"                    protocol, vfs, SUPER_SHARE, **setfshare_kwargs)"},{"line_number":752,"context_line":"            except Exception as err:"},{"line_number":753,"context_line":"                message \u003d (_(\"There was an error adding permissions: \""},{"line_number":754,"context_line":"                             \"%s.\") % six.text_type(err))"},{"line_number":755,"context_line":"                raise exception.ShareMountException(reason\u003dmessage)"},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    def _create_mount_directory(self, mount_location):"},{"line_number":758,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_25c5f63b","line":755,"range":{"start_line":752,"start_character":12,"end_line":755,"end_character":67},"updated":"2016-03-15 20:34:52.000000000","message":"Not covered by unit test.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":749,"context_line":"            try:"},{"line_number":750,"context_line":"                result \u003d self._client.setfshare("},{"line_number":751,"context_line":"                    protocol, vfs, SUPER_SHARE, **setfshare_kwargs)"},{"line_number":752,"context_line":"            except Exception as err:"},{"line_number":753,"context_line":"                message \u003d (_(\"There was an error adding permissions: \""},{"line_number":754,"context_line":"                             \"%s.\") % six.text_type(err))"},{"line_number":755,"context_line":"                raise exception.ShareMountException(reason\u003dmessage)"},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    def _create_mount_directory(self, mount_location):"},{"line_number":758,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_0e01f7ae","line":755,"range":{"start_line":752,"start_character":12,"end_line":755,"end_character":67},"in_reply_to":"1af94dfe_25c5f63b","updated":"2016-03-15 21:32:30.000000000","message":"Cover shows this is being tested.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    def _create_mount_directory(self, mount_location):"},{"line_number":758,"context_line":"        try:"},{"line_number":759,"context_line":"            utils.execute(\u0027mkdir\u0027, mount_location,"},{"line_number":760,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":761,"context_line":"        except Exception as err:"},{"line_number":762,"context_line":"            message \u003d (_(\"There was an error creating mount directory: \""},{"line_number":763,"context_line":"                         \"%s. The nested file tree will not be deleted.\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_c5d892f2","line":760,"range":{"start_line":759,"start_character":25,"end_line":760,"end_character":43},"updated":"2016-03-15 20:34:52.000000000","message":"Please unwrap.  This all fits on one line.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    def _create_mount_directory(self, mount_location):"},{"line_number":758,"context_line":"        try:"},{"line_number":759,"context_line":"            utils.execute(\u0027mkdir\u0027, mount_location,"},{"line_number":760,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":761,"context_line":"        except Exception as err:"},{"line_number":762,"context_line":"            message \u003d (_(\"There was an error creating mount directory: \""},{"line_number":763,"context_line":"                         \"%s. The nested file tree will not be deleted.\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_28dcab11","line":760,"range":{"start_line":759,"start_character":25,"end_line":760,"end_character":43},"in_reply_to":"1af94dfe_c5d892f2","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":759,"context_line":"            utils.execute(\u0027mkdir\u0027, mount_location,"},{"line_number":760,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":761,"context_line":"        except Exception as err:"},{"line_number":762,"context_line":"            message \u003d (_(\"There was an error creating mount directory: \""},{"line_number":763,"context_line":"                         \"%s. The nested file tree will not be deleted.\") %"},{"line_number":764,"context_line":"                       six.text_type(err))"},{"line_number":765,"context_line":"            LOG.warning(message)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_a56d8606","line":762,"range":{"start_line":762,"start_character":23,"end_line":762,"end_character":24},"updated":"2016-03-15 20:34:52.000000000","message":"_LW","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":759,"context_line":"            utils.execute(\u0027mkdir\u0027, mount_location,"},{"line_number":760,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":761,"context_line":"        except Exception as err:"},{"line_number":762,"context_line":"            message \u003d (_(\"There was an error creating mount directory: \""},{"line_number":763,"context_line":"                         \"%s. The nested file tree will not be deleted.\") %"},{"line_number":764,"context_line":"                       six.text_type(err))"},{"line_number":765,"context_line":"            LOG.warning(message)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_6804f37d","line":762,"range":{"start_line":762,"start_character":23,"end_line":762,"end_character":24},"in_reply_to":"1af94dfe_a56d8606","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":760,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":761,"context_line":"        except Exception as err:"},{"line_number":762,"context_line":"            message \u003d (_(\"There was an error creating mount directory: \""},{"line_number":763,"context_line":"                         \"%s. The nested file tree will not be deleted.\") %"},{"line_number":764,"context_line":"                       six.text_type(err))"},{"line_number":765,"context_line":"            LOG.warning(message)"},{"line_number":766,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_c5ad3233","line":763,"range":{"start_line":763,"start_character":74,"end_line":763,"end_character":75},"updated":"2016-03-15 20:34:52.000000000","message":"Use a comma here.  Same multiple places below.\n\nhttp://docs.openstack.org/developer/oslo.i18n/guidelines.html#adding-variables-to-log-messages","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":760,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":761,"context_line":"        except Exception as err:"},{"line_number":762,"context_line":"            message \u003d (_(\"There was an error creating mount directory: \""},{"line_number":763,"context_line":"                         \"%s. The nested file tree will not be deleted.\") %"},{"line_number":764,"context_line":"                       six.text_type(err))"},{"line_number":765,"context_line":"            LOG.warning(message)"},{"line_number":766,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_48093795","line":763,"range":{"start_line":763,"start_character":74,"end_line":763,"end_character":75},"in_reply_to":"1af94dfe_c5ad3233","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":758,"context_line":"        try:"},{"line_number":759,"context_line":"            utils.execute(\u0027mkdir\u0027, mount_location,"},{"line_number":760,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":761,"context_line":"        except Exception as err:"},{"line_number":762,"context_line":"            message \u003d (_(\"There was an error creating mount directory: \""},{"line_number":763,"context_line":"                         \"%s. The nested file tree will not be deleted.\") %"},{"line_number":764,"context_line":"                       six.text_type(err))"},{"line_number":765,"context_line":"            LOG.warning(message)"},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"    def _mount_super_share(self, protocol, mount_location, fpg, vfs, fstore):"},{"line_number":768,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_65dd3e14","line":765,"range":{"start_line":761,"start_character":8,"end_line":765,"end_character":32},"updated":"2016-03-15 20:34:52.000000000","message":"Not covered by unit test.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":758,"context_line":"        try:"},{"line_number":759,"context_line":"            utils.execute(\u0027mkdir\u0027, mount_location,"},{"line_number":760,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":761,"context_line":"        except Exception as err:"},{"line_number":762,"context_line":"            message \u003d (_(\"There was an error creating mount directory: \""},{"line_number":763,"context_line":"                         \"%s. The nested file tree will not be deleted.\") %"},{"line_number":764,"context_line":"                       six.text_type(err))"},{"line_number":765,"context_line":"            LOG.warning(message)"},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"    def _mount_super_share(self, protocol, mount_location, fpg, vfs, fstore):"},{"line_number":768,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_539a8815","line":765,"range":{"start_line":761,"start_character":8,"end_line":765,"end_character":32},"in_reply_to":"1af94dfe_65dd3e14","updated":"2016-03-15 21:32:30.000000000","message":"Done. Created test__create_mount_directory_error to test this.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":771,"context_line":"                utils.execute(\u0027mount\u0027, \u0027-t\u0027, \u0027nfs\u0027, mount_path, mount_location,"},{"line_number":772,"context_line":"                              run_as_root\u003dTrue)"},{"line_number":773,"context_line":"                LOG.debug(\"Execute mount. mount_location: %s\", mount_location)"},{"line_number":774,"context_line":"            else:"},{"line_number":775,"context_line":"                user \u003d (\u0027username\u003d\u0027 + self.hpe3par_cifs_admin_access_username +"},{"line_number":776,"context_line":"                        \u0027,password\u003d\u0027 +"},{"line_number":777,"context_line":"                        self.hpe3par_cifs_admin_access_password +"},{"line_number":778,"context_line":"                        \u0027,domain\u003d\u0027 + self.hpe3par_cifs_admin_access_domain)"},{"line_number":779,"context_line":"                utils.execute(\u0027mount\u0027, \u0027-t\u0027, \u0027cifs\u0027, mount_path,"},{"line_number":780,"context_line":"                              mount_location, \u0027-o\u0027, user, run_as_root\u003dTrue)"},{"line_number":781,"context_line":"        except Exception as err:"},{"line_number":782,"context_line":"            message \u003d (_LW(\"There was an error mounting the super share: \""},{"line_number":783,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"},{"line_number":784,"context_line":"                       six.text_type(err))"},{"line_number":785,"context_line":"            LOG.warning(message)"},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"    def _unmount_super_share(self, mount_location):"},{"line_number":788,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_a5e746e3","line":785,"range":{"start_line":774,"start_character":12,"end_line":785,"end_character":32},"updated":"2016-03-15 20:34:52.000000000","message":"Not covered by unit test.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":771,"context_line":"                utils.execute(\u0027mount\u0027, \u0027-t\u0027, \u0027nfs\u0027, mount_path, mount_location,"},{"line_number":772,"context_line":"                              run_as_root\u003dTrue)"},{"line_number":773,"context_line":"                LOG.debug(\"Execute mount. mount_location: %s\", mount_location)"},{"line_number":774,"context_line":"            else:"},{"line_number":775,"context_line":"                user \u003d (\u0027username\u003d\u0027 + self.hpe3par_cifs_admin_access_username +"},{"line_number":776,"context_line":"                        \u0027,password\u003d\u0027 +"},{"line_number":777,"context_line":"                        self.hpe3par_cifs_admin_access_password +"},{"line_number":778,"context_line":"                        \u0027,domain\u003d\u0027 + self.hpe3par_cifs_admin_access_domain)"},{"line_number":779,"context_line":"                utils.execute(\u0027mount\u0027, \u0027-t\u0027, \u0027cifs\u0027, mount_path,"},{"line_number":780,"context_line":"                              mount_location, \u0027-o\u0027, user, run_as_root\u003dTrue)"},{"line_number":781,"context_line":"        except Exception as err:"},{"line_number":782,"context_line":"            message \u003d (_LW(\"There was an error mounting the super share: \""},{"line_number":783,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"},{"line_number":784,"context_line":"                       six.text_type(err))"},{"line_number":785,"context_line":"            LOG.warning(message)"},{"line_number":786,"context_line":""},{"line_number":787,"context_line":"    def _unmount_super_share(self, mount_location):"},{"line_number":788,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_13e5a036","line":785,"range":{"start_line":774,"start_character":12,"end_line":785,"end_character":32},"in_reply_to":"1af94dfe_a5e746e3","updated":"2016-03-15 21:32:30.000000000","message":"Done. Expanded test__mount_super_share and added test__mount_super_share_error to cover this.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":786,"context_line":""},{"line_number":787,"context_line":"    def _unmount_super_share(self, mount_location):"},{"line_number":788,"context_line":"        try:"},{"line_number":789,"context_line":"            utils.execute(\u0027umount\u0027, mount_location,"},{"line_number":790,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":791,"context_line":"        except Exception as err:"},{"line_number":792,"context_line":"            message \u003d (_LW(\"There was an error unmounting the super share: \""},{"line_number":793,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_6531be0b","line":790,"range":{"start_line":789,"start_character":25,"end_line":790,"end_character":43},"updated":"2016-03-15 20:34:52.000000000","message":"Please unwrap.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":786,"context_line":""},{"line_number":787,"context_line":"    def _unmount_super_share(self, mount_location):"},{"line_number":788,"context_line":"        try:"},{"line_number":789,"context_line":"            utils.execute(\u0027umount\u0027, mount_location,"},{"line_number":790,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":791,"context_line":"        except Exception as err:"},{"line_number":792,"context_line":"            message \u003d (_LW(\"There was an error unmounting the super share: \""},{"line_number":793,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_e83f6323","line":790,"range":{"start_line":789,"start_character":25,"end_line":790,"end_character":43},"in_reply_to":"1af94dfe_6531be0b","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":788,"context_line":"        try:"},{"line_number":789,"context_line":"            utils.execute(\u0027umount\u0027, mount_location,"},{"line_number":790,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":791,"context_line":"        except Exception as err:"},{"line_number":792,"context_line":"            message \u003d (_LW(\"There was an error unmounting the super share: \""},{"line_number":793,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"},{"line_number":794,"context_line":"                       six.text_type(err))"},{"line_number":795,"context_line":"            LOG.warning(message)"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":"    def _delete_share_directory(self, directory):"},{"line_number":798,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_65041e7e","line":795,"range":{"start_line":791,"start_character":8,"end_line":795,"end_character":32},"updated":"2016-03-15 20:34:52.000000000","message":"Not covered by unit test.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":788,"context_line":"        try:"},{"line_number":789,"context_line":"            utils.execute(\u0027umount\u0027, mount_location,"},{"line_number":790,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":791,"context_line":"        except Exception as err:"},{"line_number":792,"context_line":"            message \u003d (_LW(\"There was an error unmounting the super share: \""},{"line_number":793,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"},{"line_number":794,"context_line":"                       six.text_type(err))"},{"line_number":795,"context_line":"            LOG.warning(message)"},{"line_number":796,"context_line":""},{"line_number":797,"context_line":"    def _delete_share_directory(self, directory):"},{"line_number":798,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_534f2892","line":795,"range":{"start_line":791,"start_character":8,"end_line":795,"end_character":32},"in_reply_to":"1af94dfe_65041e7e","updated":"2016-03-15 21:32:30.000000000","message":"Done. Created test__unmount_super_share_error to test this.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":796,"context_line":""},{"line_number":797,"context_line":"    def _delete_share_directory(self, directory):"},{"line_number":798,"context_line":"        try:"},{"line_number":799,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, directory,"},{"line_number":800,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":801,"context_line":"        except Exception as err:"},{"line_number":802,"context_line":"            message \u003d (_LW(\"There was an error removing the share: \""},{"line_number":803,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_a53bc6ea","line":800,"range":{"start_line":799,"start_character":25,"end_line":800,"end_character":43},"updated":"2016-03-15 20:34:52.000000000","message":"Please unwrap.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":796,"context_line":""},{"line_number":797,"context_line":"    def _delete_share_directory(self, directory):"},{"line_number":798,"context_line":"        try:"},{"line_number":799,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, directory,"},{"line_number":800,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":801,"context_line":"        except Exception as err:"},{"line_number":802,"context_line":"            message \u003d (_LW(\"There was an error removing the share: \""},{"line_number":803,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_284aebc5","line":800,"range":{"start_line":799,"start_character":25,"end_line":800,"end_character":43},"in_reply_to":"1af94dfe_a53bc6ea","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":798,"context_line":"        try:"},{"line_number":799,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, directory,"},{"line_number":800,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":801,"context_line":"        except Exception as err:"},{"line_number":802,"context_line":"            message \u003d (_LW(\"There was an error removing the share: \""},{"line_number":803,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"},{"line_number":804,"context_line":"                       six.text_type(err))"},{"line_number":805,"context_line":"            LOG.warning(message)"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"    def _generate_mount_path(self, protocol, fpg, vfs, fstore):"},{"line_number":808,"context_line":"        path \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_45092295","line":805,"range":{"start_line":801,"start_character":8,"end_line":805,"end_character":32},"updated":"2016-03-15 20:34:52.000000000","message":"Not covered by unit test.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":798,"context_line":"        try:"},{"line_number":799,"context_line":"            utils.execute(\u0027rm\u0027, \u0027-rf\u0027, directory,"},{"line_number":800,"context_line":"                          run_as_root\u003dTrue)"},{"line_number":801,"context_line":"        except Exception as err:"},{"line_number":802,"context_line":"            message \u003d (_LW(\"There was an error removing the share: \""},{"line_number":803,"context_line":"                           \"%s. The nested file tree will not be deleted.\") %"},{"line_number":804,"context_line":"                       six.text_type(err))"},{"line_number":805,"context_line":"            LOG.warning(message)"},{"line_number":806,"context_line":""},{"line_number":807,"context_line":"    def _generate_mount_path(self, protocol, fpg, vfs, fstore):"},{"line_number":808,"context_line":"        path \u003d None"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_d374d8d0","line":805,"range":{"start_line":801,"start_character":8,"end_line":805,"end_character":32},"in_reply_to":"1af94dfe_45092295","updated":"2016-03-15 21:32:30.000000000","message":"Done. Created test__delete_share_directory_error to test this.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                     \u0027fpg\u0027: fpg,"},{"line_number":813,"context_line":"                     \u0027vfs\u0027: vfs,"},{"line_number":814,"context_line":"                     \u0027fstore\u0027: fstore})"},{"line_number":815,"context_line":"        else:"},{"line_number":816,"context_line":"            path \u003d ((\"//%(share_ip)s/%(share_name)s/\") %"},{"line_number":817,"context_line":"                    {\u0027share_ip\u0027: self.hpe3par_share_ip_address,"},{"line_number":818,"context_line":"                     \u0027share_name\u0027: SUPER_SHARE})"},{"line_number":819,"context_line":"        return path"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def get_vfs_name(self, fpg):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_25f336a0","line":818,"range":{"start_line":815,"start_character":0,"end_line":818,"end_character":48},"updated":"2016-03-15 20:34:52.000000000","message":"Not covered by unit test.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                     \u0027fpg\u0027: fpg,"},{"line_number":813,"context_line":"                     \u0027vfs\u0027: vfs,"},{"line_number":814,"context_line":"                     \u0027fstore\u0027: fstore})"},{"line_number":815,"context_line":"        else:"},{"line_number":816,"context_line":"            path \u003d ((\"//%(share_ip)s/%(share_name)s/\") %"},{"line_number":817,"context_line":"                    {\u0027share_ip\u0027: self.hpe3par_share_ip_address,"},{"line_number":818,"context_line":"                     \u0027share_name\u0027: SUPER_SHARE})"},{"line_number":819,"context_line":"        return path"},{"line_number":820,"context_line":""},{"line_number":821,"context_line":"    def get_vfs_name(self, fpg):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_93f890e7","line":818,"range":{"start_line":815,"start_character":0,"end_line":818,"end_character":48},"in_reply_to":"1af94dfe_25f336a0","updated":"2016-03-15 21:32:30.000000000","message":"Done. Expanded test__mount_super_share to cover this.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"}],"manila/tests/share/drivers/hpe/test_hpe_3par_mediator.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":2433,"context_line":"    def test__create_mount_directory(self):"},{"line_number":2434,"context_line":"        self.init_mediator()"},{"line_number":2435,"context_line":""},{"line_number":2436,"context_line":"        self.mock_object(utils,"},{"line_number":2437,"context_line":"                         \u0027execute\u0027,"},{"line_number":2438,"context_line":"                         mock.Mock(return_value\u003d{}))"},{"line_number":2439,"context_line":"        mount_location \u003d \u0027/mnt/foo\u0027"},{"line_number":2440,"context_line":"        self.mediator._create_mount_directory(mount_location)"},{"line_number":2441,"context_line":"        utils.execute.assert_called_with(\u0027mkdir\u0027, mount_location,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_0849ef5f","line":2438,"range":{"start_line":2436,"start_character":8,"end_line":2438,"end_character":52},"updated":"2016-03-15 20:34:52.000000000","message":"Please unwrap.  This all fits on one line.  Same in following tests.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":2433,"context_line":"    def test__create_mount_directory(self):"},{"line_number":2434,"context_line":"        self.init_mediator()"},{"line_number":2435,"context_line":""},{"line_number":2436,"context_line":"        self.mock_object(utils,"},{"line_number":2437,"context_line":"                         \u0027execute\u0027,"},{"line_number":2438,"context_line":"                         mock.Mock(return_value\u003d{}))"},{"line_number":2439,"context_line":"        mount_location \u003d \u0027/mnt/foo\u0027"},{"line_number":2440,"context_line":"        self.mediator._create_mount_directory(mount_location)"},{"line_number":2441,"context_line":"        utils.execute.assert_called_with(\u0027mkdir\u0027, mount_location,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_f3af54e1","line":2438,"range":{"start_line":2436,"start_character":8,"end_line":2438,"end_character":52},"in_reply_to":"1af94dfe_0849ef5f","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"e7da73838d6467ed621095849962067d84fa273d","unresolved":false,"context_lines":[{"line_number":2437,"context_line":"                         \u0027execute\u0027,"},{"line_number":2438,"context_line":"                         mock.Mock(return_value\u003d{}))"},{"line_number":2439,"context_line":"        mount_location \u003d \u0027/mnt/foo\u0027"},{"line_number":2440,"context_line":"        self.mediator._create_mount_directory(mount_location)"},{"line_number":2441,"context_line":"        utils.execute.assert_called_with(\u0027mkdir\u0027, mount_location,"},{"line_number":2442,"context_line":"                                         run_as_root\u003dTrue)"},{"line_number":2443,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_e83ac3cc","line":2440,"range":{"start_line":2440,"start_character":8,"end_line":2440,"end_character":61},"updated":"2016-03-15 20:34:52.000000000","message":"Please use whitespace to separate unit tests into 3 sections (mocks, call, asserts) for improved readability.  Same below.","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"3d823d4193976f61747eca63a3d1fbff39afb30b","unresolved":false,"context_lines":[{"line_number":2437,"context_line":"                         \u0027execute\u0027,"},{"line_number":2438,"context_line":"                         mock.Mock(return_value\u003d{}))"},{"line_number":2439,"context_line":"        mount_location \u003d \u0027/mnt/foo\u0027"},{"line_number":2440,"context_line":"        self.mediator._create_mount_directory(mount_location)"},{"line_number":2441,"context_line":"        utils.execute.assert_called_with(\u0027mkdir\u0027, mount_location,"},{"line_number":2442,"context_line":"                                         run_as_root\u003dTrue)"},{"line_number":2443,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_33ba5c24","line":2440,"range":{"start_line":2440,"start_character":8,"end_line":2440,"end_character":61},"in_reply_to":"1af94dfe_e83ac3cc","updated":"2016-03-15 21:32:30.000000000","message":"Done","commit_id":"6be81f1704f365663caf3b46d304d9806cdf5b6a"}]}
