)]}'
{"cyborg/common/exception.py":[{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"5154e2b501a13cbc5ea47a2c228b5cd91351231f","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"class DeviceProfileNotFound(NotFound):"},{"line_number":221,"context_line":"    _msg_fmt \u003d _(\"DeviceProfile %(device_profile)s could not be found.\")"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"class DeployableNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_6d4bc627","line":221,"updated":"2019-12-21 16:35:51.000000000","message":"This is fine. But we should also change the following:\n\nhttps://opendev.org/openstack/cyborg/src/commit/c867db9882b1c117d5730e2051d1a2a017bc18b7/cyborg/db/sqlalchemy/api.py#L504\n\nLines 495, 512, etc.","commit_id":"973d54eb1192efc9b6e2add60a61b40bc495fd24"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"9941a4d7784a24eeedad778a95e6da3a31ac3e71","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"class DeviceProfileNotFound(NotFound):"},{"line_number":221,"context_line":"    _msg_fmt \u003d _(\"DeviceProfile %(device_profile)s could not be found.\")"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"class DeployableNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_46190785","line":221,"in_reply_to":"3fa7e38b_6d4bc627","updated":"2019-12-23 02:25:47.000000000","message":"Done","commit_id":"973d54eb1192efc9b6e2add60a61b40bc495fd24"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"20a6a7bc234580e1f6ce6ce06ffcff5e4a8f2dac","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"class DeviceProfileNotFound(NotFound):"},{"line_number":221,"context_line":"    _msg_fmt \u003d _(\"DeviceProfile %(device_profile)s could not be found.\")"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"class DeployableNotFound(NotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c66df701","line":221,"in_reply_to":"3fa7e38b_6d4bc627","updated":"2019-12-23 01:57:51.000000000","message":"Good catch. Thanks! will update it.","commit_id":"973d54eb1192efc9b6e2add60a61b40bc495fd24"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"56e96ee907ad2dc9a326b3e9c570f9964022b354","unresolved":false,"context_lines":[{"line_number":437,"context_line":""},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"# TODO() Merge other NotFound in this generic one?"},{"line_number":440,"context_line":"class ResourceNotFound(NotFound):"},{"line_number":441,"context_line":"    _msg_fmt \u003d _(\"%(resource)s not found %(msg)s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_0183f904","line":440,"range":{"start_line":440,"start_character":6,"end_line":440,"end_character":22},"updated":"2019-12-23 05:57:52.000000000","message":"As you want to refactor this, I prefer to we implement this TODO, merge all the NotFound exception in this generic one? what do you think?","commit_id":"18d8567a27e1aa1087b95f6c01e402dcc786076e"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"cf4761fa3f1e096e6b110e6decc94ea364716ab7","unresolved":false,"context_lines":[{"line_number":437,"context_line":""},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"# TODO() Merge other NotFound in this generic one?"},{"line_number":440,"context_line":"class ResourceNotFound(NotFound):"},{"line_number":441,"context_line":"    _msg_fmt \u003d _(\"%(resource)s not found %(msg)s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_dc238657","line":440,"range":{"start_line":440,"start_character":6,"end_line":440,"end_character":22},"in_reply_to":"3fa7e38b_0183f904","updated":"2019-12-23 08:16:41.000000000","message":"Ye. I also want to implement this recently. As you said, merge all the NotFound like DeviceProfileNotFound, DeployableNotFound,DeployableNotFoundByRP to This ResourceNotFound Class can make our code more clearly. @Sundar Hi, Sundar. What do you think?","commit_id":"18d8567a27e1aa1087b95f6c01e402dcc786076e"},{"author":{"_account_id":21672,"name":"Sundar Nadathur","email":"sundar.nadathur@intel.com","username":"nsundar"},"change_message_id":"c9f8d04b66d4c99d201b8dab90552755b5502553","unresolved":false,"context_lines":[{"line_number":437,"context_line":""},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"# TODO() Merge other NotFound in this generic one?"},{"line_number":440,"context_line":"class ResourceNotFound(NotFound):"},{"line_number":441,"context_line":"    _msg_fmt \u003d _(\"%(resource)s not found %(msg)s\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_a54c6ec9","line":440,"range":{"start_line":440,"start_character":6,"end_line":440,"end_character":22},"in_reply_to":"3fa7e38b_dc238657","updated":"2019-12-23 12:42:45.000000000","message":"I agree. That is why I introduced it. It can include many other object-specific exceptions. However, I\u0027d like others to vote on this too: have many specific exceptions or one general exception?","commit_id":"18d8567a27e1aa1087b95f6c01e402dcc786076e"}]}
