)]}'
{"cinder/volume/drivers/nfs.py":[{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"7debb94ec627f22842da5abc9e453491702ea36d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    def _read_config_file(self, config_file):"},{"line_number":114,"context_line":"        # Returns list of lines in file"},{"line_number":115,"context_line":"        with open(config_file) as f:"},{"line_number":116,"context_line":"            return f.read().split(\u0027\\n\u0027)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def _load_shares_config(self, share_file):"},{"line_number":119,"context_line":"        shares \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F89w%3D","line":116,"updated":"2013-05-16 09:34:48.000000000","message":"consider using f.readlines() instead","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8cb06f9aebe8a342144fdf0daaf9e36c8588614f","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    def _read_config_file(self, config_file):"},{"line_number":114,"context_line":"        # Returns list of lines in file"},{"line_number":115,"context_line":"        with open(config_file) as f:"},{"line_number":116,"context_line":"            return f.read().split(\u0027\\n\u0027)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def _load_shares_config(self, share_file):"},{"line_number":119,"context_line":"        shares \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F8S8%3D","line":116,"in_reply_to":"AAAAO3%2F%2F89w%3D","updated":"2013-05-16 16:22:10.000000000","message":"Done","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"7debb94ec627f22842da5abc9e453491702ea36d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            if share.startswith(\u0027#\u0027):"},{"line_number":124,"context_line":"                continue"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # share_info \u003d [ \u0027address:/vol\u0027, \u0027-o options\u003d123,rw --other\u0027 ]"},{"line_number":127,"context_line":"            share_info \u003d share.split(\u0027 \u0027, 1)"},{"line_number":128,"context_line":"            share_address \u003d share_info[0].strip()"},{"line_number":129,"context_line":"            shares.append(share_address)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F89Y%3D","line":126,"updated":"2013-05-16 09:34:48.000000000","message":"maybe useful to give an example of the expected input here (I know its in the commit message and the expected result of splitting is above but its a useful reference to understand what the code is expecting","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8cb06f9aebe8a342144fdf0daaf9e36c8588614f","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            if share.startswith(\u0027#\u0027):"},{"line_number":124,"context_line":"                continue"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # share_info \u003d [ \u0027address:/vol\u0027, \u0027-o options\u003d123,rw --other\u0027 ]"},{"line_number":127,"context_line":"            share_info \u003d share.split(\u0027 \u0027, 1)"},{"line_number":128,"context_line":"            share_address \u003d share_info[0].strip()"},{"line_number":129,"context_line":"            shares.append(share_address)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F8PU%3D","line":126,"in_reply_to":"AAAAO3%2F%2F89Y%3D","updated":"2013-05-16 16:22:10.000000000","message":"Done","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"d0f30d401396ff8b5ac868e2a22f994d055ec58b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                continue"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # share_info \u003d [ \u0027address:/vol\u0027, \u0027-o options\u003d123,rw --other\u0027 ]"},{"line_number":127,"context_line":"            share_info \u003d share.split(\u0027 \u0027, 1)"},{"line_number":128,"context_line":"            share_address \u003d share_info[0].strip()"},{"line_number":129,"context_line":"            shares.append(share_address)"},{"line_number":130,"context_line":"            if len(share_info) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F8do%3D","line":127,"updated":"2013-05-16 15:26:50.000000000","message":"In the comment you have you show quotes around the address and the options but you don\u0027t show that in the commit message.  Which format are you expecting?","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"7debb94ec627f22842da5abc9e453491702ea36d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                continue"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # share_info \u003d [ \u0027address:/vol\u0027, \u0027-o options\u003d123,rw --other\u0027 ]"},{"line_number":127,"context_line":"            share_info \u003d share.split(\u0027 \u0027, 1)"},{"line_number":128,"context_line":"            share_address \u003d share_info[0].strip()"},{"line_number":129,"context_line":"            shares.append(share_address)"},{"line_number":130,"context_line":"            if len(share_info) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F89c%3D","line":127,"updated":"2013-05-16 09:34:48.000000000","message":"can vol contain spaces? If so, will this code break?","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8cb06f9aebe8a342144fdf0daaf9e36c8588614f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                continue"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # share_info \u003d [ \u0027address:/vol\u0027, \u0027-o options\u003d123,rw --other\u0027 ]"},{"line_number":127,"context_line":"            share_info \u003d share.split(\u0027 \u0027, 1)"},{"line_number":128,"context_line":"            share_address \u003d share_info[0].strip()"},{"line_number":129,"context_line":"            shares.append(share_address)"},{"line_number":130,"context_line":"            if len(share_info) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F8QI%3D","line":127,"in_reply_to":"AAAAO3%2F%2F89c%3D","updated":"2013-05-16 16:22:10.000000000","message":"Hmm.  I looked at this for Gluster, and it doesn\u0027t allow them -- but NFS apparently does.  Let me think on this one.","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"796f27deabbf5325e8603ac24b63303ada3441d3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                continue"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # share_info \u003d [ \u0027address:/vol\u0027, \u0027-o options\u003d123,rw --other\u0027 ]"},{"line_number":127,"context_line":"            share_info \u003d share.split(\u0027 \u0027, 1)"},{"line_number":128,"context_line":"            share_address \u003d share_info[0].strip()"},{"line_number":129,"context_line":"            shares.append(share_address)"},{"line_number":130,"context_line":"            if len(share_info) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2F10%3D","line":127,"in_reply_to":"AAAAO3%2F%2F8QE%3D","updated":"2013-05-16 20:36:20.000000000","message":"Yes, that would be helpful.  Thanks!","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"185c9720b8f2a650a12b13ad09e9a944c223e5b1","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                continue"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # share_info \u003d [ \u0027address:/vol\u0027, \u0027-o options\u003d123,rw --other\u0027 ]"},{"line_number":127,"context_line":"            share_info \u003d share.split(\u0027 \u0027, 1)"},{"line_number":128,"context_line":"            share_address \u003d share_info[0].strip()"},{"line_number":129,"context_line":"            shares.append(share_address)"},{"line_number":130,"context_line":"            if len(share_info) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2F1I%3D","line":127,"in_reply_to":"AAAAO3%2F%2F8QI%3D","updated":"2013-05-16 20:38:41.000000000","message":"Stephen (and others):\n\nI looked into the question of volume names having spaces... even if it\u0027s fixed here, the code that checks for free space breaks when it tries to parse the df output, so it doesn\u0027t appear that that has ever worked.\n\nI have been thinking about a later effort to bring NFS/Gluster share configuration into cinder.conf and I\u0027m inclined to worry about this as part of that effort, since it doesn\u0027t appear that it has ever been supported and should be a rare case.  Fixing it here complicates things significantly, possibly more than is worthwhile.\n\nHow does that sound?","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8cb06f9aebe8a342144fdf0daaf9e36c8588614f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                continue"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # share_info \u003d [ \u0027address:/vol\u0027, \u0027-o options\u003d123,rw --other\u0027 ]"},{"line_number":127,"context_line":"            share_info \u003d share.split(\u0027 \u0027, 1)"},{"line_number":128,"context_line":"            share_address \u003d share_info[0].strip()"},{"line_number":129,"context_line":"            shares.append(share_address)"},{"line_number":130,"context_line":"            if len(share_info) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F8QE%3D","line":127,"in_reply_to":"AAAAO3%2F%2F8do%3D","updated":"2013-05-16 16:22:10.000000000","message":"The comment here was to show the information after it had been parsed, and the commit message was the actual format for the file.  I\u0027ll document the file format in here too based on Stephen\u0027s comment above which should clear things up.","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":6153,"name":"stephen-mulcahy","email":"stephen.mulcahy@hpe.com","username":"stephen-mulcahy"},"change_message_id":"7debb94ec627f22842da5abc9e453491702ea36d","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        LOG.debug(\"shares loaded: %s\", shares)"},{"line_number":134,"context_line":"        LOG.debug(\"share options: %s\", self.share_options)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        return shares"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class NfsDriver(RemoteFsDriver):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F89E%3D","line":136,"updated":"2013-05-16 09:34:48.000000000","message":"Is this handling shares and share_options separately (returning shares and storing share_options in self)? If so, why? Why not keep this data in a single place?","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"8cb06f9aebe8a342144fdf0daaf9e36c8588614f","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        LOG.debug(\"shares loaded: %s\", shares)"},{"line_number":134,"context_line":"        LOG.debug(\"share options: %s\", self.share_options)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        return shares"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class NfsDriver(RemoteFsDriver):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAO3%2F%2F8Pw%3D","line":136,"in_reply_to":"AAAAO3%2F%2F89E%3D","updated":"2013-05-16 16:22:10.000000000","message":"Yes, mostly just to change the current code less.\n\nThis makes sense though -- probably better to turn shares into a dict of { \u0027address:/volume\u0027 : \u0027-o options\u0027} rather than splitting them into two places.","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"796f27deabbf5325e8603ac24b63303ada3441d3","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        LOG.debug(\"shares loaded: %s\", shares)"},{"line_number":134,"context_line":"        LOG.debug(\"share options: %s\", self.share_options)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        return shares"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class NfsDriver(RemoteFsDriver):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2F1s%3D","line":136,"in_reply_to":"AAAAO3%2F%2F8Pw%3D","updated":"2013-05-16 20:36:20.000000000","message":"+1","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"cdf45199ebd2a94850532700993f798d77fe3699","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        LOG.debug(\"shares loaded: %s\", shares)"},{"line_number":134,"context_line":"        LOG.debug(\"share options: %s\", self.share_options)"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        return shares"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"class NfsDriver(RemoteFsDriver):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2F%2FH0%3D","line":136,"in_reply_to":"AAAAPH%2F%2F%2F1s%3D","updated":"2013-05-17 02:52:03.000000000","message":"I\u0027ve consolidated shares and share_options into self.shares -- this needs to be available in \"self\" so that initialize_connection can access the option information.","commit_id":"021e0ca1eef52dbb8c5c83405af64c1b4c7eb4d3"}]}
