)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8745417994c8b14f888999423d6aa2bbbd29a3b8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"stores a different context as a side effect.  This was causing log lines"},{"line_number":12,"context_line":"to either be missing context or for it to look like the context had"},{"line_number":13,"context_line":"changed during the build process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia5175c9729069df3d779237ba6039cf5bc920018"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9aa53dc9_80445974","line":14,"updated":"2015-04-07 17:08:26.000000000","message":"Is there a bug for this?","commit_id":"d3b6e0d60651b178435f63943cfa4133f86e3774"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"69a4fbeb754903aa269ad2287ca725da49571a65","unresolved":false,"context_lines":[{"line_number":11,"context_line":"stores a different context as a side effect.  This was causing log lines"},{"line_number":12,"context_line":"to either be missing context or for it to look like the context had"},{"line_number":13,"context_line":"changed during the build process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia5175c9729069df3d779237ba6039cf5bc920018"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9aa53dc9_a0abd8d5","line":14,"in_reply_to":"9aa53dc9_80445974","updated":"2015-04-07 18:43:55.000000000","message":"There will be soon.  :)","commit_id":"d3b6e0d60651b178435f63943cfa4133f86e3774"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"6bd513d1befcae93890f790b3bc91fc10697d322","unresolved":false,"context_lines":[{"line_number":11,"context_line":"stores a different context as a side effect.  This was causing log lines"},{"line_number":12,"context_line":"to either be missing context or for it to look like the context had"},{"line_number":13,"context_line":"changed during the build process."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia5175c9729069df3d779237ba6039cf5bc920018"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9aa53dc9_40d40c1f","line":14,"in_reply_to":"9aa53dc9_a0abd8d5","updated":"2015-04-07 18:48:49.000000000","message":"Sweet, there was already a reported bug for this https://bugs.launchpad.net/nova/+bug/1404268.","commit_id":"d3b6e0d60651b178435f63943cfa4133f86e3774"}],"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8745417994c8b14f888999423d6aa2bbbd29a3b8","unresolved":false,"context_lines":[{"line_number":2134,"context_line":""},{"line_number":2135,"context_line":"        @utils.synchronized(instance.uuid)"},{"line_number":2136,"context_line":"        def _locked_do_build_and_run_instance(*args, **kwargs):"},{"line_number":2137,"context_line":"            context.update_store()"},{"line_number":2138,"context_line":"            # NOTE(danms): We grab the semaphore with the instance uuid"},{"line_number":2139,"context_line":"            # locked because we could wait in line to build this instance"},{"line_number":2140,"context_line":"            # for a while and we want to make sure that nothing else tries"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_0059695a","line":2137,"updated":"2015-04-07 17:08:26.000000000","message":"Might want a comment above this explaining why it\u0027s needed.","commit_id":"d3b6e0d60651b178435f63943cfa4133f86e3774"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"69a4fbeb754903aa269ad2287ca725da49571a65","unresolved":false,"context_lines":[{"line_number":2134,"context_line":""},{"line_number":2135,"context_line":"        @utils.synchronized(instance.uuid)"},{"line_number":2136,"context_line":"        def _locked_do_build_and_run_instance(*args, **kwargs):"},{"line_number":2137,"context_line":"            context.update_store()"},{"line_number":2138,"context_line":"            # NOTE(danms): We grab the semaphore with the instance uuid"},{"line_number":2139,"context_line":"            # locked because we could wait in line to build this instance"},{"line_number":2140,"context_line":"            # for a while and we want to make sure that nothing else tries"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_007de46d","line":2137,"in_reply_to":"9aa53dc9_0059695a","updated":"2015-04-07 18:43:55.000000000","message":"Good point.  I\u0027m trying to find a way to put this into utils.spawn_n, but if that doesn\u0027t work out I\u0027ll comment here.","commit_id":"d3b6e0d60651b178435f63943cfa4133f86e3774"}],"nova/utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2af1e7bf9823244d062a88a05050fc4d7ecbe334","unresolved":false,"context_lines":[{"line_number":958,"context_line":"    def context_wrapper(*args, **kwargs):"},{"line_number":959,"context_line":"        # NOTE: If update_store is not called after spawn_n it won\u0027t be"},{"line_number":960,"context_line":"        # available for the logger to pull from threadlocal storage."},{"line_number":961,"context_line":"        if isinstance(args[0], context.RequestContext):"},{"line_number":962,"context_line":"            args[0].update_store()"},{"line_number":963,"context_line":"        func(*args, **kwargs)"},{"line_number":964,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_9f4b5d87","line":961,"updated":"2015-04-08 19:22:35.000000000","message":"nit: there are some utilities used in other decorators (in the compute manager) for normalizing the args into a dict so you can get them by name, so you could just do kwargs.get(\u0027context\u0027) here.","commit_id":"da618abaebe72f2b94e09365228f49319642174f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2af1e7bf9823244d062a88a05050fc4d7ecbe334","unresolved":false,"context_lines":[{"line_number":959,"context_line":"        # NOTE: If update_store is not called after spawn_n it won\u0027t be"},{"line_number":960,"context_line":"        # available for the logger to pull from threadlocal storage."},{"line_number":961,"context_line":"        if isinstance(args[0], context.RequestContext):"},{"line_number":962,"context_line":"            args[0].update_store()"},{"line_number":963,"context_line":"        func(*args, **kwargs)"},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"    eventlet.spawn_n(context_wrapper, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9aa53dc9_7f3539f5","line":962,"updated":"2015-04-08 19:22:35.000000000","message":"I think we need a simple unit test to verify that this gets called and will work with args and kwargs.","commit_id":"da618abaebe72f2b94e09365228f49319642174f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3f2b2c28add6f558e9388ac6b5f8d6febc0b4881","unresolved":false,"context_lines":[{"line_number":961,"context_line":"        # available for the logger to pull from threadlocal storage."},{"line_number":962,"context_line":"        wrapped_func \u003d get_wrapped_function(func)"},{"line_number":963,"context_line":"        keyed_args \u003d safe_utils.getcallargs(wrapped_func, *args, **kwargs)"},{"line_number":964,"context_line":"        ctxt \u003d keyed_args.get(\u0027context\u0027) or keyed_args.get(\u0027ctxt\u0027)"},{"line_number":965,"context_line":"        if isinstance(ctxt, context.RequestContext):"},{"line_number":966,"context_line":"            ctxt.update_store()"},{"line_number":967,"context_line":"        func(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa53dc9_ee3df38f","line":964,"updated":"2015-04-09 17:48:20.000000000","message":"nit: you could avoid the guessing game with the name of the arg if you loop over the entries in the dict looking for a RequestContext object and break the loop once you update the store.","commit_id":"8703713b871aa49ea75634fdb7d9958daab694ec"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"888ac16b42a67763e5872db410bd4596fbf71b55","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"from nova import exception"},{"line_number":52,"context_line":"from nova.i18n import _, _LE, _LW"},{"line_number":53,"context_line":"from nova import safe_utils"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"notify_decorator \u003d \u0027nova.notifications.notify_decorator\u0027"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7aaa499b_321758ef","line":53,"updated":"2015-04-10 18:03:33.000000000","message":"import not used anywhere. pep8 error.","commit_id":"243d2097747449d677fddf4bdbbd30ad0959d935"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"eaf73872706d7fbefcaa584cdb6d31d0e994350f","unresolved":false,"context_lines":[{"line_number":958,"context_line":"    def context_wrapper(*args, **kwargs):"},{"line_number":959,"context_line":"        # NOTE: If update_store is not called after spawn_n it won\u0027t be"},{"line_number":960,"context_line":"        # available for the logger to pull from threadlocal storage."},{"line_number":961,"context_line":"        ctxt \u003d common_context.get_context_from_function_and_args(func, args,"},{"line_number":962,"context_line":"                kwargs)"},{"line_number":963,"context_line":"        if ctxt is not None:"},{"line_number":964,"context_line":"            ctxt.update_store()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aaa499b_73a04291","line":961,"updated":"2015-04-10 19:49:42.000000000","message":"Hmm, it may not be in the get_context_from_function_and_args...we should lookup common_context.get_current() *before* we spawn and use that somehow as fallback if get_context_from_function_and_args does not have it.","commit_id":"4a230fafefdd11413947eac763ea0d0c09cb9019"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"5d94c013fba91ab9b0c26f9d526cafc196890ecc","unresolved":false,"context_lines":[{"line_number":958,"context_line":"    def context_wrapper(*args, **kwargs):"},{"line_number":959,"context_line":"        # NOTE: If update_store is not called after spawn_n it won\u0027t be"},{"line_number":960,"context_line":"        # available for the logger to pull from threadlocal storage."},{"line_number":961,"context_line":"        ctxt \u003d common_context.get_context_from_function_and_args(func, args,"},{"line_number":962,"context_line":"                kwargs)"},{"line_number":963,"context_line":"        if ctxt is not None:"},{"line_number":964,"context_line":"            ctxt.update_store()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aaa499b_ec0d8938","line":961,"in_reply_to":"7aaa499b_73a04291","updated":"2015-04-11 12:38:17.000000000","message":"It may not be retrieved because it\u0027s possible that no context is being passed in, which is fine.  If it is being passed in I don\u0027t think we would fail to retrieve it.\n\nI think what you\u0027re suggesting is that we grab the current context and pass that as a new argument to the method being called here?\n\nIs there a situation where there would be a local context set and not passed in the the method being spawned?  And in that case would be want to set a context within the new greenthread?","commit_id":"4a230fafefdd11413947eac763ea0d0c09cb9019"}]}
