)]}'
{"neutron_lib/exceptions.py":[{"author":{"_account_id":10980,"name":"Doug Wiegley","email":"dougwig@parkside.io","username":"dougw"},"change_message_id":"a7f6b06ab0a85f3456b1d9dc3b3e1c9de3cd7c69","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 VMware, Inc, 2015 A10 Networks, Inc"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_4cafaee3","side":"PARENT","line":1,"updated":"2016-08-19 12:13:41.000000000","message":"They\u0027re cached on first import (startup), so I\u0027m fine with it, personally.","commit_id":"a3f606c1373e8b353b7d44af38a66bbed09d291f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"0673d82dca635153f56458fb3f1d8affe715d63c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1ac06dbe_d848798a","updated":"2016-08-19 12:11:07.000000000","message":"I\u0027m starting to wonder if we should really lump all the exceptions into 1 module, or if we should consider breaking out into a package. E.g.\n\n\nneutron_lib.exceptions.ovo\nneutron_lib.exceptions.base\netc.\n\n\nThoughts?","commit_id":"2c31a6bef90cef672d6cdc9a1b913eb9dcb10083"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"ecb9dc345e6e26c4706399ddb2405649fe48f83a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1ac06dbe_afed7427","in_reply_to":"1ac06dbe_d848798a","updated":"2016-08-19 12:46:40.000000000","message":"Having them all here makes it really easy to use and edit. I don\u0027t mind either way, but it doesn\u0027t seem needed IMO. Most libs just have an exceptions.py -- https://github.com/kennethreitz/requests/blob/master/requests/exceptions.py","commit_id":"2c31a6bef90cef672d6cdc9a1b913eb9dcb10083"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"0673d82dca635153f56458fb3f1d8affe715d63c","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    def __init__(self, object_class, db_exception):"},{"line_number":280,"context_line":"        super(NeutronDbObjectDuplicateEntry, self).__init__("},{"line_number":281,"context_line":"            object_type\u003dreflection.get_class_name(object_class,"},{"line_number":282,"context_line":"                                                  fully_qualified\u003dFalse),"},{"line_number":283,"context_line":"            attributes\u003ddb_exception.columns,"},{"line_number":284,"context_line":"            values\u003ddb_exception.value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_d89d195b","line":281,"updated":"2016-08-19 12:11:07.000000000","message":"We should probably have a UT to cover this logic.","commit_id":"2c31a6bef90cef672d6cdc9a1b913eb9dcb10083"},{"author":{"_account_id":7037,"name":"John Perkins","email":"john.perkins@rackspace.com","username":"JPerkins"},"change_message_id":"ecb9dc345e6e26c4706399ddb2405649fe48f83a","unresolved":false,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    def __init__(self, object_class, db_exception):"},{"line_number":280,"context_line":"        super(NeutronDbObjectDuplicateEntry, self).__init__("},{"line_number":281,"context_line":"            object_type\u003dreflection.get_class_name(object_class,"},{"line_number":282,"context_line":"                                                  fully_qualified\u003dFalse),"},{"line_number":283,"context_line":"            attributes\u003ddb_exception.columns,"},{"line_number":284,"context_line":"            values\u003ddb_exception.value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_624b93b1","line":281,"in_reply_to":"1ac06dbe_d89d195b","updated":"2016-08-19 12:46:40.000000000","message":"We have one, you want to move it here? \nhttps://github.com/openstack/neutron/blob/master/neutron/tests/unit/objects/test_base.py#L629-L633","commit_id":"2c31a6bef90cef672d6cdc9a1b913eb9dcb10083"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"0673d82dca635153f56458fb3f1d8affe715d63c","unresolved":false,"context_lines":[{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def __init__(self, object_class, missing_keys):"},{"line_number":296,"context_line":"        super(NeutronPrimaryKeyMissing, self).__init__("},{"line_number":297,"context_line":"            object_type\u003dreflection.get_class_name(object_class,"},{"line_number":298,"context_line":"                                                  fully_qualified\u003dFalse),"},{"line_number":299,"context_line":"            missing_keys\u003dmissing_keys"},{"line_number":300,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_18c7b146","line":297,"updated":"2016-08-19 12:11:07.000000000","message":"We should probably have a UT to cover this logic.","commit_id":"2c31a6bef90cef672d6cdc9a1b913eb9dcb10083"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"0673d82dca635153f56458fb3f1d8affe715d63c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1ac06dbe_38b0ad8b","line":306,"updated":"2016-08-19 12:11:07.000000000","message":"What about: neutron.objects.common_types.NeutronRangeConstrainedIntegerInvalidLimit","commit_id":"2c31a6bef90cef672d6cdc9a1b913eb9dcb10083"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"998248a51194e4fdcfeee4c8f0c0a6cef7a0ca8e","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                \"for attribute(s) %(attributes)s with value(s) %(values)s\")"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    def __init__(self, object_class, db_exception):"},{"line_number":280,"context_line":"        super(NeutronDbObjectDuplicateEntry, self).__init__("},{"line_number":281,"context_line":"            object_type\u003dreflection.get_class_name(object_class,"},{"line_number":282,"context_line":"                                                  fully_qualified\u003dFalse),"},{"line_number":283,"context_line":"            attributes\u003ddb_exception.columns,"},{"line_number":284,"context_line":"            values\u003ddb_exception.value)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"class NeutronDbObjectNotFoundByModel(NotFound):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_f9e6a4b2","line":284,"range":{"start_line":280,"start_character":50,"end_line":284,"end_character":38},"updated":"2016-08-22 17:08:29.000000000","message":"As per our guidelines [1] we are looking for 100% coverage and this is not tested. \n\n\n[1] https://github.com/openstack/neutron-lib/blob/master/doc/source/review-guidelines.rst","commit_id":"eb98ef2205fade75568ac2041fc321ec41e4f9c7"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"998248a51194e4fdcfeee4c8f0c0a6cef7a0ca8e","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                \"%(missing_keys)s\")"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    def __init__(self, object_class, missing_keys):"},{"line_number":296,"context_line":"        super(NeutronPrimaryKeyMissing, self).__init__("},{"line_number":297,"context_line":"            object_type\u003dreflection.get_class_name(object_class,"},{"line_number":298,"context_line":"                                                  fully_qualified\u003dFalse),"},{"line_number":299,"context_line":"            missing_keys\u003dmissing_keys"},{"line_number":300,"context_line":"        )"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"class NeutronSyntheticFieldMultipleForeignKeys(NeutronException):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_79e91480","line":300,"range":{"start_line":296,"start_character":46,"end_line":300,"end_character":9},"updated":"2016-08-22 17:08:29.000000000","message":"Ditto","commit_id":"eb98ef2205fade75568ac2041fc321ec41e4f9c7"}]}
