)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"429bbb73c2969d02d3b23920b1048f321d62f092","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1a7b0d38_a5c34456","line":15,"updated":"2015-12-29 15:02:02.000000000","message":"It is important to refer to a specification:\n\n Implements: pluggable-types.rst","commit_id":"3cec1ed1f4de9e1770cb62225adb9fa45285f255"}],"rally/task/types.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"429bbb73c2969d02d3b23920b1048f321d62f092","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    return wrapper"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def _get_jit_preprocessor_loader(plugin_name):"},{"line_number":44,"context_line":"    \"\"\"Get a class that JIT loads a preprocessor class."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    This returns a class with a single class method, ``transform``,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_c5745069","line":43,"updated":"2015-12-29 15:02:02.000000000","message":"We do not use just-in-tume compilation. Term `JIT\u0027 looks inappropriate","commit_id":"3cec1ed1f4de9e1770cb62225adb9fa45285f255"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"54d1b744c893a9e1d184456040d44dec8dc1029f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    return wrapper"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def _get_jit_preprocessor_loader(plugin_name):"},{"line_number":44,"context_line":"    \"\"\"Get a class that JIT loads a preprocessor class."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    This returns a class with a single class method, ``transform``,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_749d1f09","line":43,"in_reply_to":"1a7b0d38_c5745069","updated":"2016-01-05 13:59:20.000000000","message":"It\u0027s not just-in-time compilation, but just-in-time plugin loading. It\u0027s still JIT.\n\nI\u0027m always open to suggestions for better names, though. Would just \"_get_preprocessor_loader()\" seem more appropriate?","commit_id":"3cec1ed1f4de9e1770cb62225adb9fa45285f255"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"1631ce60a081a524ae7da3e47a26d21523055a87","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    return wrapper"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"def _get_jit_preprocessor_loader(plugin_name):"},{"line_number":44,"context_line":"    \"\"\"Get a class that JIT loads a preprocessor class."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    This returns a class with a single class method, ``transform``,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_4913210e","line":43,"in_reply_to":"fa69d971_749d1f09","updated":"2016-01-07 22:21:53.000000000","message":"Done","commit_id":"3cec1ed1f4de9e1770cb62225adb9fa45285f255"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"9038897a4ed97fee61f97204d373e0660a257cc7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    we can be certain that all plugins have been loaded and finding"},{"line_number":57,"context_line":"    them by name will work."},{"line_number":58,"context_line":"    \"\"\""},{"line_number":59,"context_line":"    # NOTE(stpierre): This technically doesn\u0027t work, because"},{"line_number":60,"context_line":"    # ResourceType subclasses aren\u0027t plugins (yet)"},{"line_number":61,"context_line":"    def transform(cls, *args, **kwargs):"},{"line_number":62,"context_line":"        plug \u003d ResourceType.get(plugin_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a8ffd7b_12f9b44d","line":59,"updated":"2015-12-01 10:34:16.000000000","message":"heh. good note:)","commit_id":"3cec1ed1f4de9e1770cb62225adb9fa45285f255"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"429bbb73c2969d02d3b23920b1048f321d62f092","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        plug \u003d ResourceType.get(plugin_name)"},{"line_number":63,"context_line":"        return plug.transform(*args, **kwargs)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    return type(\"JITPluginLoader_%s\" % plugin_name,"},{"line_number":66,"context_line":"                (object,),"},{"line_number":67,"context_line":"                {\"transform\": classmethod(transform)})"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_265bdaf7","line":65,"updated":"2015-12-29 15:02:02.000000000","message":"Why create new type instead of ResourceType?\n\nThis looks redundant.","commit_id":"3cec1ed1f4de9e1770cb62225adb9fa45285f255"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"54d1b744c893a9e1d184456040d44dec8dc1029f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        plug \u003d ResourceType.get(plugin_name)"},{"line_number":63,"context_line":"        return plug.transform(*args, **kwargs)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    return type(\"JITPluginLoader_%s\" % plugin_name,"},{"line_number":66,"context_line":"                (object,),"},{"line_number":67,"context_line":"                {\"transform\": classmethod(transform)})"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa69d971_f456ef28","line":65,"in_reply_to":"1a7b0d38_265bdaf7","updated":"2016-01-05 13:59:20.000000000","message":"We can\u0027t just return ResourceType, since the class that is returned needs to have a transform() classmethod that finds one particular plugin and calls its transform(). If I\u0027m misunderstanding your suggestion, I think (pseudo)code would probably help me.","commit_id":"3cec1ed1f4de9e1770cb62225adb9fa45285f255"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"a9b64f56d64399f743b43a1a219109a41c788b55","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    This would convert the ``image`` key in the scenario configuration"},{"line_number":83,"context_line":"    to a Glance image by using the ``glance_image`` resource"},{"line_number":84,"context_line":"    plugin. Currently ``type`` is the only recognized key, but others"},{"line_number":85,"context_line":"    may be added in the future."},{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":"    preprocessors \u003d dict([(k, _get_preprocessor_loader(v[\"type\"]))"},{"line_number":88,"context_line":"                          for k, v in kwargs.items()])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_b7defd6a","line":85,"updated":"2016-03-17 12:19:15.000000000","message":"Is there any some future plans to add something more then type? If its already exists could you share with it as a reply to the comment)","commit_id":"a9b4c2401066d24f5363f3bd88196393c895e494"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"b33f244951e45e4c9f0582fe14b80b3fede04b10","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    This would convert the ``image`` key in the scenario configuration"},{"line_number":83,"context_line":"    to a Glance image by using the ``glance_image`` resource"},{"line_number":84,"context_line":"    plugin. Currently ``type`` is the only recognized key, but others"},{"line_number":85,"context_line":"    may be added in the future."},{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":"    preprocessors \u003d dict([(k, _get_preprocessor_loader(v[\"type\"]))"},{"line_number":88,"context_line":"                          for k, v in kwargs.items()])"}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_e5e28a2e","line":85,"in_reply_to":"1af94dfe_b7defd6a","updated":"2016-03-17 13:06:36.000000000","message":"No immediate plans. In the spec for this I had originally suggested something like:\n\n    @types.convert(image\u003d\"glance_image\")\n\n...but Boris suggested the dict instead for futureproofing.","commit_id":"a9b4c2401066d24f5363f3bd88196393c895e494"}]}
