)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"bd6eed27e8be05e83d0b1b3c652c53983475232d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jan Vondra \u003cjan.vondra@ultimum.io\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-08-28 14:22:56 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Closes-Bug: 1703581"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I2cbf959d7cb849d3ead1655b1a0932fd428a9e9f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f287b81_f629bfe5","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":19},"updated":"2017-08-28 12:42:34.000000000","message":"this should be in the commit message body, not the title. Please include a brief title for your change, and preferably a short description as well (in the commit message body), with the \"Closes-Bug: #1703581\" entry below that short description.\n\nSee an example here: https://review.openstack.org/#/c/497236/","commit_id":"5c02d48f9b11b4bc3ef5e54673215ccac5d24229"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"37fa9409d08293b8b9859124a1489f6634709f96","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"CIFS extension failing because of volume in use"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Unmouting of the volume from service instance sometimes fails because Windows clients tends to check the availability of shares even if not mounted and the volume is in use then."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Fix finds out the processes via smbstatus and kill them before unmounting."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f287b81_e9a440a8","line":9,"range":{"start_line":9,"start_character":70,"end_line":9,"end_character":178},"updated":"2017-08-28 13:07:52.000000000","message":"don\u0027t go beyond 72 chars","commit_id":"6adb29101404c0fd7543a8ddf3c876e63ec6e544"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"37fa9409d08293b8b9859124a1489f6634709f96","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Unmouting of the volume from service instance sometimes fails because Windows clients tends to check the availability of shares even if not mounted and the volume is in use then."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Fix finds out the processes via smbstatus and kill them before unmounting."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes-Bug: 1703581"},{"line_number":14,"context_line":"Change-Id: I2cbf959d7cb849d3ead1655b1a0932fd428a9e9f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f287b81_a9aab86d","line":11,"range":{"start_line":11,"start_character":71,"end_line":11,"end_character":74},"updated":"2017-08-28 13:07:52.000000000","message":"same here","commit_id":"6adb29101404c0fd7543a8ddf3c876e63ec6e544"},{"author":{"_account_id":7102,"name":"Thomas Bechtold","email":"thomas.bechtold@canonical.com","username":"toabctl"},"change_message_id":"3003ed2537861302087ae32ae78ddc0391c69b98","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Fix finds out processes via smbstatus and kill them before unmounting."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: 1703581"},{"line_number":16,"context_line":"Change-Id: I2cbf959d7cb849d3ead1655b1a0932fd428a9e9f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"bf57530f_b4ece5f3","line":15,"updated":"2017-09-20 10:39:10.000000000","message":"The bug report does not provide a stacktrace or anything useful about the bug. Would be nice to get some more information","commit_id":"72528c0f08369444f0590427a3ebbbb664cbf9cf"}],"manila/share/drivers/helpers.py":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"bd6eed27e8be05e83d0b1b3c652c53983475232d","unresolved":false,"context_lines":[{"line_number":536,"context_line":"        self._kick_off_users(server, share_name)"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"    def _kick_off_users(self, server, share_name):"},{"line_number":539,"context_line":"        \"\"\"Kick off all users to share\"\"\""},{"line_number":540,"context_line":"        (out, _) \u003d self._ssh_exec(server, [\u0027sudo\u0027, \u0027smbstatus\u0027, \u0027-S\u0027])"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        shares \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_36cf472a","line":539,"range":{"start_line":539,"start_character":30,"end_line":539,"end_character":32},"updated":"2017-08-28 12:42:34.000000000","message":"of","commit_id":"5c02d48f9b11b4bc3ef5e54673215ccac5d24229"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"bd6eed27e8be05e83d0b1b3c652c53983475232d","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                if match:"},{"line_number":549,"context_line":"                    shares.append(match.groupdict())"},{"line_number":550,"context_line":"                else:"},{"line_number":551,"context_line":"                    raise exception.ManilaException(\"Unknow output format for smbstatus!\")"},{"line_number":552,"context_line":"            elif line.startswith(\u0027----\u0027):"},{"line_number":553,"context_line":"                header \u003d False"},{"line_number":554,"context_line":"        to_kill \u003d [s[\u0027pid\u0027] for s in shares if share_name \u003d\u003d s[\u0027share\u0027] or share_name is None]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_96df1bd5","line":551,"range":{"start_line":551,"start_character":52,"end_line":551,"end_character":90},"updated":"2017-08-28 12:42:34.000000000","message":"please use an exception message that includes an ID (or share_name in this case). Suggestion: (\"Failed to obtain smbstatus for share %s\", share_name)","commit_id":"5c02d48f9b11b4bc3ef5e54673215ccac5d24229"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"37fa9409d08293b8b9859124a1489f6634709f96","unresolved":false,"context_lines":[{"line_number":536,"context_line":"        self._kick_out_users(server, share_name)"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"    def _kick_out_users(self, server, share_name):"},{"line_number":539,"context_line":"        \"\"\"Kick out all users to share\"\"\""},{"line_number":540,"context_line":"        (out, _) \u003d self._ssh_exec(server, [\u0027sudo\u0027, \u0027smbstatus\u0027, \u0027-S\u0027])"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        shares \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_e9cd6066","line":539,"range":{"start_line":539,"start_character":30,"end_line":539,"end_character":32},"updated":"2017-08-28 13:07:52.000000000","message":"of","commit_id":"6adb29101404c0fd7543a8ddf3c876e63ec6e544"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"37fa9409d08293b8b9859124a1489f6634709f96","unresolved":false,"context_lines":[{"line_number":544,"context_line":"        for line in out.splitlines():"},{"line_number":545,"context_line":"            line \u003d line.strip()"},{"line_number":546,"context_line":"            if not header and line:"},{"line_number":547,"context_line":"                match \u003d re.match(\"^(?P\u003cshare\u003e[^ ]+)\\s+(?P\u003cpid\u003e[0-9]+)\\s+(?P\u003cmachine\u003e[^ ]+).*\", line)"},{"line_number":548,"context_line":"                if match:"},{"line_number":549,"context_line":"                    shares.append(match.groupdict())"},{"line_number":550,"context_line":"                else:"},{"line_number":551,"context_line":"                    raise exception.ManilaException(\"Failed to obtain smbstatus for %s!\", share_name)"},{"line_number":552,"context_line":"            elif line.startswith(\u0027----\u0027):"},{"line_number":553,"context_line":"                header \u003d False"},{"line_number":554,"context_line":"        to_kill \u003d [s[\u0027pid\u0027] for s in shares if share_name \u003d\u003d s[\u0027share\u0027] or share_name is None]"},{"line_number":555,"context_line":"        if to_kill:"},{"line_number":556,"context_line":"            self._ssh_exec(server, [\u0027sudo\u0027, \u0027kill\u0027, \u0027-15\u0027] + to_kill)"},{"line_number":557,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f287b81_89eedcb1","line":554,"range":{"start_line":547,"start_character":58,"end_line":554,"end_character":94},"updated":"2017-08-28 13:07:52.000000000","message":"you got to break line, don\u0027t go beyond 79 chars. PEP8 test will not pass. Run \"tox -e pep8\" before submitting the patch.","commit_id":"6adb29101404c0fd7543a8ddf3c876e63ec6e544"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"cbc508d7e98c938c4f0e41c69ab4c2a2f16a8074","unresolved":false,"context_lines":[{"line_number":470,"context_line":"        for param, value in self.parameters.items():"},{"line_number":471,"context_line":"            self._ssh_exec(server, [\u0027sudo\u0027, \u0027net\u0027, \u0027conf\u0027, \u0027setparm\u0027,"},{"line_number":472,"context_line":"                                    share_name,"},{"line_number":473,"context_line":"                                    \u0027\"%s\"\u0027 % param, \u0027\"%s\"\u0027 % value])"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        return self.get_exports_for_share(server, \u0027\\\\\\\\%s\\\\\u0027 + share_name)"},{"line_number":476,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5f2577a7_4e145844","line":473,"range":{"start_line":473,"start_character":36,"end_line":473,"end_character":67},"updated":"2017-09-18 03:22:09.000000000","message":"What the relationship between this changed and bug?","commit_id":"31839507d5c7157e1cf7b7e378bad5cfdaf5dfaa"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"cbc508d7e98c938c4f0e41c69ab4c2a2f16a8074","unresolved":false,"context_lines":[{"line_number":549,"context_line":"                match \u003d re.match(regexp, line)"},{"line_number":550,"context_line":"                if match:"},{"line_number":551,"context_line":"                    shares.append(match.groupdict())"},{"line_number":552,"context_line":"                else:"},{"line_number":553,"context_line":"                    raise exception.ManilaException("},{"line_number":554,"context_line":"                        \"Failed to obtain smbstatus for %s!\", share_name)"},{"line_number":555,"context_line":"            elif line.startswith(\u0027----\u0027):"},{"line_number":556,"context_line":"                header \u003d False"},{"line_number":557,"context_line":"        to_kill \u003d [s[\u0027pid\u0027] for s in shares if"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f2577a7_ceea880d","line":554,"range":{"start_line":552,"start_character":16,"end_line":554,"end_character":73},"updated":"2017-09-18 03:22:09.000000000","message":"If some of the shares that doesn\u0027t belong to manila share or some other reasons, the share name doesn\u0027t named \"****share**\", it will enter this branch and raise error. In this case, we don\u0027t need to care about other shares, the result that we expected is success.  Could you explain it?","commit_id":"31839507d5c7157e1cf7b7e378bad5cfdaf5dfaa"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"944f8b89196c1a66c9767ca36fb27dfb6061ac9c","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                match \u003d re.match(regexp, line)"},{"line_number":549,"context_line":"                if match:"},{"line_number":550,"context_line":"                    shares.append(match.groupdict())"},{"line_number":551,"context_line":"                else:"},{"line_number":552,"context_line":"                    raise exception.ManilaException("},{"line_number":553,"context_line":"                        \"Failed to obtain smbstatus for %s!\", share_name)"},{"line_number":554,"context_line":"            elif line.startswith(\u0027----\u0027):"},{"line_number":555,"context_line":"                header \u003d False"},{"line_number":556,"context_line":"        to_kill \u003d [s[\u0027pid\u0027] for s in shares if"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_a766ceec","line":553,"range":{"start_line":551,"start_character":16,"end_line":553,"end_character":73},"updated":"2017-09-25 01:43:01.000000000","message":"If some of the shares that doesn\u0027t belong to manila share or some other reasons, the share name doesn\u0027t named \"****share**\", it will enter this branch and raise error. In this case, we don\u0027t need to care about other shares, the result that we expected is success.  Could you explain it?","commit_id":"72528c0f08369444f0590427a3ebbbb664cbf9cf"},{"author":{"_account_id":26768,"name":"Jan Vondra","email":"jan.vondra@ultimum.io","username":"JanVondra"},"change_message_id":"29e131a929ba8e1a8a6df550d8fa3c112c1b1807","unresolved":false,"context_lines":[{"line_number":548,"context_line":"                match \u003d re.match(regexp, line)"},{"line_number":549,"context_line":"                if match:"},{"line_number":550,"context_line":"                    shares.append(match.groupdict())"},{"line_number":551,"context_line":"                else:"},{"line_number":552,"context_line":"                    raise exception.ManilaException("},{"line_number":553,"context_line":"                        \"Failed to obtain smbstatus for %s!\", share_name)"},{"line_number":554,"context_line":"            elif line.startswith(\u0027----\u0027):"},{"line_number":555,"context_line":"                header \u003d False"},{"line_number":556,"context_line":"        to_kill \u003d [s[\u0027pid\u0027] for s in shares if"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f515b1d_7f2e1ea6","line":553,"range":{"start_line":551,"start_character":16,"end_line":553,"end_character":73},"in_reply_to":"7f515b1d_a766ceec","updated":"2017-09-25 07:42:49.000000000","message":"The for cycle block parses the output of smbstatus regardless the name of the share. The regexp match fails only if the output of smbstatus is broken/unexpected. This should be reported into log rather than fail silently.\nThe processes to be killed are selected in line 557 via list comprehension.","commit_id":"72528c0f08369444f0590427a3ebbbb664cbf9cf"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b52121c664d1ef649c2e5d78d7895381209d782d","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        shares \u003d []"},{"line_number":539,"context_line":"        header \u003d True"},{"line_number":540,"context_line":"        regexp \u003d \"^(?P\u003cshare\u003e[^ ]+)\\s+(?P\u003cpid\u003e[0-9]+)\\s+(?P\u003cmachine\u003e[^ ]+).*\""},{"line_number":541,"context_line":"        for line in out.splitlines():"},{"line_number":542,"context_line":"            line \u003d line.strip()"},{"line_number":543,"context_line":"            if not header and line:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff570b3c_bc8fb02c","line":540,"updated":"2020-05-14 01:52:04.000000000","message":"pep8: W605 invalid escape sequence \u0027\\s\u0027","commit_id":"a2725385b982dd2407715cba7fd0c1a9df3bbdc8"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b52121c664d1ef649c2e5d78d7895381209d782d","unresolved":false,"context_lines":[{"line_number":537,"context_line":""},{"line_number":538,"context_line":"        shares \u003d []"},{"line_number":539,"context_line":"        header \u003d True"},{"line_number":540,"context_line":"        regexp \u003d \"^(?P\u003cshare\u003e[^ ]+)\\s+(?P\u003cpid\u003e[0-9]+)\\s+(?P\u003cmachine\u003e[^ ]+).*\""},{"line_number":541,"context_line":"        for line in out.splitlines():"},{"line_number":542,"context_line":"            line \u003d line.strip()"},{"line_number":543,"context_line":"            if not header and line:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff570b3c_dc942447","line":540,"updated":"2020-05-14 01:52:04.000000000","message":"pep8: W605 invalid escape sequence \u0027\\s\u0027","commit_id":"a2725385b982dd2407715cba7fd0c1a9df3bbdc8"}],"releasenotes/notes/bug-1703581-cifs-extension-failing-because-of-volume-in-use-3fea31c4a58e2f1b.yaml":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"ab75aa061940b0d329ba77181a8c7bcc764252b2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed the Generic driver to evict and kill any user processes accessing"},{"line_number":4,"context_line":"    a share b before attempting to extend or shrink a CIFS share."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"ff570b3c_8d2a7c29","line":4,"range":{"start_line":4,"start_character":11,"end_line":4,"end_character":13},"updated":"2020-05-27 21:29:20.000000000","message":"remove","commit_id":"1289160ee2600941edb55d38505cb0d59d9dbe8b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7322bdfcae6f87018149189d54737bb412d4678b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Fixed the Generic driver to evict and kill any user processes accessing"},{"line_number":4,"context_line":"    a share b before attempting to extend or shrink a CIFS share."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"ff570b3c_8d5efc73","line":4,"range":{"start_line":4,"start_character":11,"end_line":4,"end_character":13},"in_reply_to":"ff570b3c_8d2a7c29","updated":"2020-05-27 21:45:27.000000000","message":"Done, ty dviroel!","commit_id":"1289160ee2600941edb55d38505cb0d59d9dbe8b"}]}
