)]}'
{"cinder/tests/unit/volume/drivers/netapp/dataontap/test_nfs_cmode.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59c3b06407832033799bdb068c01059915763e5d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\"\"\""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import ddt"},{"line_number":20,"context_line":"import hashlib"},{"line_number":21,"context_line":"import mock"},{"line_number":22,"context_line":"from os_brick.remotefs import remotefs as remotefs_brick"},{"line_number":23,"context_line":"from oslo_utils import units"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_f955bc1e","line":20,"updated":"2017-04-24 14:17:45.000000000","message":"If you need to do another update, hashlib and uuid are standard libraries, so they should be together in their own section before these other third party imports.","commit_id":"1abc04405d05b15768b000d604ab4d5c75500547"}],"cinder/volume/drivers/netapp/dataontap/nfs_base.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4acae713ceffeb2c6433623e9748e8552271006","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        try:"},{"line_number":660,"context_line":"            os.utime(path, None)"},{"line_number":661,"context_line":"        except OSError:"},{"line_number":662,"context_line":"            # we ignore permission denies or no such file errors"},{"line_number":663,"context_line":"            return"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    def _discover_file_till_timeout(self, path, timeout\u003d75):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_09253cab","line":662,"range":{"start_line":662,"start_character":0,"end_line":662,"end_character":64},"updated":"2017-04-10 12:59:12.000000000","message":"Why don\u0027t we self._execute() this? If we\u0027re running with nas_secure_* options, we\u0027ll have self._execute_as_root set to False. \nso, we\u0027d use the correct permissions if we executed this with:\n\n self._execute(\u0027touch\u0027, \u0027path\u0027, run_as_root\u003dself._execute_as_root)","commit_id":"8c91a01642f02bf436de2a0cb1e0312b33a4ac46"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d6f0813e8aca3b63caf3c8c254c9137032b74cc7","unresolved":false,"context_lines":[{"line_number":655,"context_line":""},{"line_number":656,"context_line":"    @utils.trace_method"},{"line_number":657,"context_line":"    def _touch_path_to_refresh(self, path):"},{"line_number":658,"context_line":"        # os.utime (like touch) on the directory forces the"},{"line_number":659,"context_line":"        # client to refresh."},{"line_number":660,"context_line":"        try:"},{"line_number":661,"context_line":"            self._execute(\u0027touch\u0027, path, run_as_root\u003dself._execute_as_root)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_61c5723c","line":658,"range":{"start_line":658,"start_character":10,"end_line":658,"end_character":18},"updated":"2017-04-24 14:30:00.000000000","message":"This comment needs to be updated to fit the code.","commit_id":"1abc04405d05b15768b000d604ab4d5c75500547"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"59c3b06407832033799bdb068c01059915763e5d","unresolved":false,"context_lines":[{"line_number":660,"context_line":"        try:"},{"line_number":661,"context_line":"            self._execute(\u0027touch\u0027, path, run_as_root\u003dself._execute_as_root)"},{"line_number":662,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":663,"context_line":"            LOG.exception(\"Failed to touch file. Reason: %s\" % e.message)"},{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    @utils.trace_method"},{"line_number":666,"context_line":"    def _discover_file_till_timeout(self, path, timeout\u003d75):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_7971ace0","line":663,"range":{"start_line":663,"start_character":60,"end_line":663,"end_character":63},"updated":"2017-04-24 14:17:45.000000000","message":"% should be ,\n\nBut this is also a little redundant since you are using LOG.exception which will log the entire exception detail, so I think this should just be removed.","commit_id":"1abc04405d05b15768b000d604ab4d5c75500547"}]}
