)]}'
{"nova/loadables.py":[{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"c5bc62e84ec3afe2c0f3cff7504b08aafaa724af","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Meant to be used by such things as scheduler filters and weights where we"},{"line_number":20,"context_line":"want to load modules from certain directories and find certain types of"},{"line_number":21,"context_line":"classes within those modules.  Note that this is quite different than"},{"line_number":22,"context_line":"generic plugins and the pluginmanager code that exists elsewhere."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Usage:"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F9q8%3D","line":22,"updated":"2012-11-13 23:53:14.000000000","message":"I\u0027ll bite. How is it different?","commit_id":"b6bace0657fad011b8f7cd4ed365359532907254"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"fdbb4c37a9290eb2f7127415f625170a20417f4e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Meant to be used by such things as scheduler filters and weights where we"},{"line_number":20,"context_line":"want to load modules from certain directories and find certain types of"},{"line_number":21,"context_line":"classes within those modules.  Note that this is quite different than"},{"line_number":22,"context_line":"generic plugins and the pluginmanager code that exists elsewhere."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Usage:"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F9qU%3D","line":22,"in_reply_to":"AAAAMH%2F%2F9q8%3D","updated":"2012-11-14 00:04:10.000000000","message":"For one, the plugin code in openstack common only allows you to import things from \u003cproject\u003e.plugin path.. where \u003cproject\u003e is \u0027nova\u0027, \u0027glance\u0027, etc.  It\u0027ll import every single module, also, it appears... when filters and weights only wants certain classes.  It also wants attributes like \u0027notifiers\u0027 and \u0027api_extension_descriptors\u0027 in the plugins that don\u0027t really apply.  It seems this is geared towards api extensions.  The only thing filters and weights wants is a list of classes specified by config options.","commit_id":"b6bace0657fad011b8f7cd4ed365359532907254"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"04bc4148be9c567cacd527666c42e670f9280574","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            else:"},{"line_number":113,"context_line":"                error_str \u003d \u0027Not a class of the correct type\u0027"},{"line_number":114,"context_line":"                raise exception.ClassNotFound(class_name\u003dcls_name,"},{"line_number":115,"context_line":"                                              exception\u003derror_str)"},{"line_number":116,"context_line":"        return classes"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F9tA%3D","line":115,"updated":"2012-11-13 23:10:22.000000000","message":"confused by this. it\u0027s lined up in my branch.","commit_id":"b6bace0657fad011b8f7cd4ed365359532907254"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"fdbb4c37a9290eb2f7127415f625170a20417f4e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            else:"},{"line_number":113,"context_line":"                error_str \u003d \u0027Not a class of the correct type\u0027"},{"line_number":114,"context_line":"                raise exception.ClassNotFound(class_name\u003dcls_name,"},{"line_number":115,"context_line":"                                              exception\u003derror_str)"},{"line_number":116,"context_line":"        return classes"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F9qo%3D","line":115,"in_reply_to":"AAAAMH%2F%2F9rA%3D","updated":"2012-11-14 00:04:10.000000000","message":"I guess I\u0027ve got some Chrome fail going on.","commit_id":"b6bace0657fad011b8f7cd4ed365359532907254"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"c5bc62e84ec3afe2c0f3cff7504b08aafaa724af","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            else:"},{"line_number":113,"context_line":"                error_str \u003d \u0027Not a class of the correct type\u0027"},{"line_number":114,"context_line":"                raise exception.ClassNotFound(class_name\u003dcls_name,"},{"line_number":115,"context_line":"                                              exception\u003derror_str)"},{"line_number":116,"context_line":"        return classes"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F9rA%3D","line":115,"in_reply_to":"AAAAMH%2F%2F9tA%3D","updated":"2012-11-13 23:53:14.000000000","message":"It\u0027s lined up for me...","commit_id":"b6bace0657fad011b8f7cd4ed365359532907254"}]}
