)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6550,"name":"Davide Guerri","email":"davide.guerri@gmail.com","username":"davide-guerri"},"change_message_id":"e5a7f8a32bf019527ad5ff5085a31e263bb140fa","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Raise a shade exception on broken volumes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Some clouds don\u0027t have volumes and bomb out here. We need to catch that"},{"line_number":10,"context_line":"and throw a shade exception so that we\u0027re not leaking python-*client"},{"line_number":11,"context_line":"exceptions."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"bab921fb_a7f5d8ed","line":9,"updated":"2015-04-25 11:03:59.000000000","message":"You may want to fix this commit message as a proper solution to available services is implemented later in the change-set chain, raising a specific exception.\n\nThis patch is still useful as other problems may occur when using cinder.","commit_id":"40003cd0f6061df5cdba36c75d5e1a99c3e030ad"}],"shade/__init__.py":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"3efba2fda2a0f66329585daf41e6c7eb0946f4de","unresolved":false,"context_lines":[{"line_number":847,"context_line":"        except Exception as e:"},{"line_number":848,"context_line":"            self.log.debug("},{"line_number":849,"context_line":"                \"cinder could not list volumes\", exc_info\u003dTrue)"},{"line_number":850,"context_line":"            raise OpenStackCloudException(\"Error fetching volume list\")"},{"line_number":851,"context_line":""},{"line_number":852,"context_line":"    def get_network(self, name_or_id, filters\u003dNone):"},{"line_number":853,"context_line":"        return self._get_entity(self.search_networks, name_or_id, filters)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_2a524114","line":850,"updated":"2015-04-23 01:17:08.000000000","message":"Do we want to include str(e) here? Seems highly relevant.","commit_id":"ca7d9b984e8848ef41529f7eda21fcb20397ec5d"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"745c9288fb99616483f092907c69f1286dbf2a74","unresolved":false,"context_lines":[{"line_number":847,"context_line":"        except Exception as e:"},{"line_number":848,"context_line":"            self.log.debug("},{"line_number":849,"context_line":"                \"cinder could not list volumes: {message}\".format("},{"line_number":850,"context_line":"                    message\u003de.message),"},{"line_number":851,"context_line":"                exc_info\u003dTrue)"},{"line_number":852,"context_line":"            raise OpenStackCloudException(\"Error fetching volume list\")"},{"line_number":853,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_1440a555","line":850,"updated":"2015-04-23 15:16:41.000000000","message":"e.message is not valid unless it is an OpenStackCloudException exception. Just use: str(e)","commit_id":"404112d22ee2b34eeefca8d15a536fae2f4d7f5b"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"8187a581aef0d02f6610e31ae9553d476308aaab","unresolved":false,"context_lines":[{"line_number":847,"context_line":"        except Exception as e:"},{"line_number":848,"context_line":"            self.log.debug("},{"line_number":849,"context_line":"                \"cinder could not list volumes: {message}\".format("},{"line_number":850,"context_line":"                    message\u003de.message),"},{"line_number":851,"context_line":"                exc_info\u003dTrue)"},{"line_number":852,"context_line":"            raise OpenStackCloudException(\"Error fetching volume list\")"},{"line_number":853,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bab921fb_cf55fac6","line":850,"in_reply_to":"bab921fb_1440a555","updated":"2015-04-23 15:22:54.000000000","message":"Nevermind. Apparently, immadummy","commit_id":"404112d22ee2b34eeefca8d15a536fae2f4d7f5b"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"0e836d01c0859c2eabb9da407c3307b47dd1fe8a","unresolved":false,"context_lines":[{"line_number":847,"context_line":"        except Exception as e:"},{"line_number":848,"context_line":"            self.log.debug("},{"line_number":849,"context_line":"                \"cinder could not list volumes: {message}\".format("},{"line_number":850,"context_line":"                    message\u003de.message),"},{"line_number":851,"context_line":"                exc_info\u003dTrue)"},{"line_number":852,"context_line":"            raise OpenStackCloudException(\"Error fetching volume list\")"},{"line_number":853,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bab921fb_c29b4871","line":850,"updated":"2015-04-24 16:03:40.000000000","message":"Exception.message is removed in python3. you want str(e), see below for example. Also if you wrote a test for this error handling, you\u0027d already know that. ;)\n\nPython 3.4.0 (default, Apr 11 2014, 13:05:11) \n[GCC 4.8.2] on linux\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n\u003e\u003e\u003e try:\n...   raise Exception(\u0027dis my message\u0027)\n... except Exception as e:\n...   print(e.message)\n... \nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 2, in \u003cmodule\u003e\nException: dis my message\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 4, in \u003cmodule\u003e\nAttributeError: \u0027Exception\u0027 object has no attribute \u0027message\u0027\n\u003e\u003e\u003e","commit_id":"e1aa38f27d8c3f90bc07cbf1cee36a83c032cd3f"}],"shade/meta.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"b23adbdb8a3e611a0db589b0febedf18b43b8b36","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    volumes \u003d []"},{"line_number":129,"context_line":"    try:"},{"line_number":130,"context_line":"        for vol in cloud.get_volumes(server):"},{"line_number":131,"context_line":"            volume \u003d obj_to_dict(vol)"},{"line_number":132,"context_line":"            # Make things easier to consume elsewhere"},{"line_number":133,"context_line":"            volume[\u0027device\u0027] \u003d volume[\u0027attachments\u0027][0][\u0027device\u0027]"},{"line_number":134,"context_line":"            volumes.append(volume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab921fb_14b9c5e9","line":131,"updated":"2015-04-23 15:06:53.000000000","message":"This bit of code is changed with review https://review.openstack.org/176789. We\u0027ll have a merge conflict between these two.","commit_id":"ca7d9b984e8848ef41529f7eda21fcb20397ec5d"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"0e836d01c0859c2eabb9da407c3307b47dd1fe8a","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import six"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import shade"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"NON_CALLABLES \u003d (six.string_types, bool, dict, int, list, type(None))"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bab921fb_8208b092","line":18,"updated":"2015-04-24 16:03:40.000000000","message":"Circular dependencies are a ticking time bomb and can cause issues for end-users if they just pull one method. It would make sense to move exceptions into an exc module for internal use so we don\u0027t have meta importing shade.","commit_id":"e1aa38f27d8c3f90bc07cbf1cee36a83c032cd3f"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"513af23c99dcbc2ba2e6b0568632b468ad991d58","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            # Make things easier to consume elsewhere"},{"line_number":134,"context_line":"            volume[\u0027device\u0027] \u003d volume[\u0027attachments\u0027][0][\u0027device\u0027]"},{"line_number":135,"context_line":"            volumes.append(volume)"},{"line_number":136,"context_line":"    except exc.OpenStackCloudException:"},{"line_number":137,"context_line":"        pass"},{"line_number":138,"context_line":"    server_vars[\u0027volumes\u0027] \u003d volumes"},{"line_number":139,"context_line":"    if mounts:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7ad32947_f3868764","line":136,"updated":"2015-04-27 16:46:05.000000000","message":"If get_volumes() raises a \"shade.OpenStackCloudException\", but this is looking for \"exc.OpenStackCloudException\" (even though the two are equivalent, but from different modules), will this actually work?\n\nI\u0027d like to see a test for this.","commit_id":"5ce6b6b7d40f87af43308be1b77c8062dd8f5be5"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"c49a4f6e7960c9b21116e8dd0678e4f3f941ed8f","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            # Make things easier to consume elsewhere"},{"line_number":134,"context_line":"            volume[\u0027device\u0027] \u003d volume[\u0027attachments\u0027][0][\u0027device\u0027]"},{"line_number":135,"context_line":"            volumes.append(volume)"},{"line_number":136,"context_line":"    except exc.OpenStackCloudException:"},{"line_number":137,"context_line":"        pass"},{"line_number":138,"context_line":"    server_vars[\u0027volumes\u0027] \u003d volumes"},{"line_number":139,"context_line":"    if mounts:"}],"source_content_type":"text/x-python","patch_set":13,"id":"7ad32947_67062d22","line":136,"in_reply_to":"7ad32947_f3868764","updated":"2015-04-27 18:47:20.000000000","message":"Apparently, this is ok.","commit_id":"5ce6b6b7d40f87af43308be1b77c8062dd8f5be5"},{"author":{"_account_id":10035,"name":"greghaynes","email":"greg@greghaynes.net","username":"greghaynes"},"change_message_id":"7c960d980dce4f6b74a5715ad75880d95c90df87","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            volume[\u0027device\u0027] \u003d volume[\u0027attachments\u0027][0][\u0027device\u0027]"},{"line_number":135,"context_line":"            volumes.append(volume)"},{"line_number":136,"context_line":"    except exc.OpenStackCloudException:"},{"line_number":137,"context_line":"        pass"},{"line_number":138,"context_line":"    server_vars[\u0027volumes\u0027] \u003d volumes"},{"line_number":139,"context_line":"    if mounts:"},{"line_number":140,"context_line":"        for mount in mounts:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3acd31a7_092aa47e","line":137,"updated":"2015-05-02 01:15:49.000000000","message":"This seems like a useful place to log something","commit_id":"2c4d909111f1ffe49456eafd377e5407d0b7cac0"}]}
