)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"1c4dc011b1b5ccd0f98ae052c608c07bf1f00eec","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rui Chen \u003cchenrui.momo@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-03-31 12:09:31 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix failing of stopping intance when init host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When nova-compute restart, the context was generated again in"},{"line_number":10,"context_line":"init_host workflow, the request_id was different with the request_id"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da9b358b_1c7d3bb1","line":7,"updated":"2015-03-31 13:54:22.000000000","message":"a slightly better title?\n\"Fix failure of stopping instances during init host\"","commit_id":"68b0e09e9530fce39b49128d87696c9eb26d734a"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"0a654297c4c8f76902bcb9c28ba28f4237286d94","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rui Chen \u003cchenrui.momo@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-03-31 12:09:31 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix failing of stopping intance when init host"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When nova-compute restart, the context was generated again in"},{"line_number":10,"context_line":"init_host workflow, the request_id was different with the request_id"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da9b358b_98bdb76a","line":7,"in_reply_to":"da9b358b_1c7d3bb1","updated":"2015-04-01 06:14:53.000000000","message":"Done","commit_id":"68b0e09e9530fce39b49128d87696c9eb26d734a"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"cb14ece506431f35d0ca8a399fc99c032997cdcf","unresolved":false,"context_lines":[{"line_number":13,"context_line":"init_instance can continue to finish the recovery action, like:"},{"line_number":14,"context_line":"powering_off, unpausing, and so on."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The instance fall in powering_off task state, because the nova-compute"},{"line_number":17,"context_line":"shutdown or reboot when the instance execute a long-duration action,"},{"line_number":18,"context_line":"like: graceful shutdown, at that time the action record should be ready."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9aa53dc9_4a3f3424","line":16,"updated":"2015-04-09 18:03:38.000000000","message":"falls or fails?","commit_id":"4c7a5fa219141b2048b042518dc535a3942898c3"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"19a64a41f17f2d9d5acdcf89c67ea10382b92a54","unresolved":false,"context_lines":[{"line_number":13,"context_line":"init_instance can continue to finish the recovery action, like:"},{"line_number":14,"context_line":"powering_off, unpausing, and so on."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The instance fall in powering_off task state, because the nova-compute"},{"line_number":17,"context_line":"shutdown or reboot when the instance execute a long-duration action,"},{"line_number":18,"context_line":"like: graceful shutdown, at that time the action record should be ready."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9aa53dc9_127a6477","line":16,"in_reply_to":"9aa53dc9_4a3f3424","updated":"2015-04-10 09:55:02.000000000","message":"falls in, thanks.","commit_id":"4c7a5fa219141b2048b042518dc535a3942898c3"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"3b028804556e43272bfc232a99409d0c0ee540ee","unresolved":false,"context_lines":[{"line_number":13,"context_line":"init_instance can continue to finish the recovery action, like:"},{"line_number":14,"context_line":"powering_off, unpausing, and so on."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The instance falls in powering_off task state, because the nova-compute"},{"line_number":17,"context_line":"shutdown or reboot when the instance execute a long-duration action,"},{"line_number":18,"context_line":"like: graceful shutdown, at that time the action record should be ready."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"3acd31a7_594091a5","line":16,"updated":"2015-04-30 16:16:09.000000000","message":"typo: falls -\u003e fails","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"cb14ece506431f35d0ca8a399fc99c032997cdcf","unresolved":false,"context_lines":[{"line_number":5726,"context_line":"    with session.begin():"},{"line_number":5727,"context_line":"        action \u003d _action_get_by_request_id(context, values[\u0027instance_uuid\u0027],"},{"line_number":5728,"context_line":"                                           values[\u0027request_id\u0027], session)"},{"line_number":5729,"context_line":"        # When nova-compute restart, the context was generated again in"},{"line_number":5730,"context_line":"        # init_host workflow, the request_id was different with the request_id"},{"line_number":5731,"context_line":"        # recorded in InstanceAction, so we can\u0027t get the original record"},{"line_number":5732,"context_line":"        # according to request_id. Try to get the last one so that"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_2e7cfbb3","line":5729,"updated":"2015-04-09 18:03:38.000000000","message":"restart \u003d\u003e restarts\n\nthe context was \u003d\u003e the context is","commit_id":"4c7a5fa219141b2048b042518dc535a3942898c3"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"19a64a41f17f2d9d5acdcf89c67ea10382b92a54","unresolved":false,"context_lines":[{"line_number":5726,"context_line":"    with session.begin():"},{"line_number":5727,"context_line":"        action \u003d _action_get_by_request_id(context, values[\u0027instance_uuid\u0027],"},{"line_number":5728,"context_line":"                                           values[\u0027request_id\u0027], session)"},{"line_number":5729,"context_line":"        # When nova-compute restart, the context was generated again in"},{"line_number":5730,"context_line":"        # init_host workflow, the request_id was different with the request_id"},{"line_number":5731,"context_line":"        # recorded in InstanceAction, so we can\u0027t get the original record"},{"line_number":5732,"context_line":"        # according to request_id. Try to get the last one so that"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_b26738e8","line":5729,"in_reply_to":"9aa53dc9_2e7cfbb3","updated":"2015-04-10 09:55:02.000000000","message":"Done","commit_id":"4c7a5fa219141b2048b042518dc535a3942898c3"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"2057d72f52ee0b5ba53a73e0dfdd2a4a866494f4","unresolved":false,"context_lines":[{"line_number":5690,"context_line":"    return result"},{"line_number":5691,"context_line":""},{"line_number":5692,"context_line":""},{"line_number":5693,"context_line":"def _action_get_last_one_by_instance_uuid(context, instance_uuid,"},{"line_number":5694,"context_line":"                                          session\u003dNone):"},{"line_number":5695,"context_line":"    result \u003d (model_query(context, models.InstanceAction, session\u003dsession)."},{"line_number":5696,"context_line":"                     filter_by(instance_uuid\u003dinstance_uuid)."}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_266ebf01","line":5693,"updated":"2015-05-01 11:12:26.000000000","message":"nit: I\u0027d prefer _action_get_last_created_by_instance_uuid","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"f9579a918cbf0b05ba238963219b577911c4954f","unresolved":false,"context_lines":[{"line_number":5690,"context_line":"    return result"},{"line_number":5691,"context_line":""},{"line_number":5692,"context_line":""},{"line_number":5693,"context_line":"def _action_get_last_one_by_instance_uuid(context, instance_uuid,"},{"line_number":5694,"context_line":"                                          session\u003dNone):"},{"line_number":5695,"context_line":"    result \u003d (model_query(context, models.InstanceAction, session\u003dsession)."},{"line_number":5696,"context_line":"                     filter_by(instance_uuid\u003dinstance_uuid)."}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_10b04a89","line":5693,"in_reply_to":"3acd31a7_266ebf01","updated":"2015-05-05 12:21:59.000000000","message":"Yes, that sounds much more descriptive.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"2057d72f52ee0b5ba53a73e0dfdd2a4a866494f4","unresolved":false,"context_lines":[{"line_number":5712,"context_line":"        # according to request_id. Try to get the last one so that"},{"line_number":5713,"context_line":"        # init_instance can continue to finish the recovery action, like:"},{"line_number":5714,"context_line":"        # powering_off, unpausing, and so on."},{"line_number":5715,"context_line":"        if not action and not context.project_id:"},{"line_number":5716,"context_line":"            action \u003d _action_get_last_one_by_instance_uuid("},{"line_number":5717,"context_line":"                context, values[\u0027instance_uuid\u0027], session)"},{"line_number":5718,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_664b9788","line":5715,"updated":"2015-05-01 11:12:26.000000000","message":"Why \"not context.project_id\" please?","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4861c213ed63ad1cadfe9bf97235d8a7e1adf5fd","unresolved":false,"context_lines":[{"line_number":5712,"context_line":"        # according to request_id. Try to get the last one so that"},{"line_number":5713,"context_line":"        # init_instance can continue to finish the recovery action, like:"},{"line_number":5714,"context_line":"        # powering_off, unpausing, and so on."},{"line_number":5715,"context_line":"        if not action and not context.project_id:"},{"line_number":5716,"context_line":"            action \u003d _action_get_last_one_by_instance_uuid("},{"line_number":5717,"context_line":"                context, values[\u0027instance_uuid\u0027], session)"},{"line_number":5718,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_8a49dfb9","line":5715,"in_reply_to":"3acd31a7_664b9788","updated":"2015-05-04 22:53:08.000000000","message":"I think it\u0027s because when nova-compute starts, the init_host is starting things with an admin context, which won\u0027t have a project_id","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b37de3da33e479da519251ba36d46645b2bd9a7b","unresolved":false,"context_lines":[{"line_number":5712,"context_line":"        # according to request_id. Try to get the last one so that"},{"line_number":5713,"context_line":"        # init_instance can continue to finish the recovery action, like:"},{"line_number":5714,"context_line":"        # powering_off, unpausing, and so on."},{"line_number":5715,"context_line":"        if not action and not context.project_id:"},{"line_number":5716,"context_line":"            action \u003d _action_get_last_one_by_instance_uuid("},{"line_number":5717,"context_line":"                context, values[\u0027instance_uuid\u0027], session)"},{"line_number":5718,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_8ebc4cdd","line":5715,"in_reply_to":"3acd31a7_8a49dfb9","updated":"2015-05-05 03:06:52.000000000","message":"Yes, melanie is right, the logic for admin context case.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"cb14ece506431f35d0ca8a399fc99c032997cdcf","unresolved":false,"context_lines":[{"line_number":3288,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3289,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"},{"line_number":3290,"context_line":"        event \u003d db.action_event_start(self.ctxt, event_values)"},{"line_number":3291,"context_line":"        # self.fail(self._dict_from_object(event, None))"},{"line_number":3292,"context_line":"        event_values[\u0027action_id\u0027] \u003d action[\u0027id\u0027]"},{"line_number":3293,"context_line":"        ignored \u003d self.IGNORED_FIELDS + [\u0027finish_time\u0027, \u0027traceback\u0027, \u0027result\u0027]"},{"line_number":3294,"context_line":"        self._assertEqualObjects(event_values, event, ignored)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_6e256307","line":3291,"updated":"2015-04-09 18:03:38.000000000","message":"no need for this line.","commit_id":"4c7a5fa219141b2048b042518dc535a3942898c3"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"19a64a41f17f2d9d5acdcf89c67ea10382b92a54","unresolved":false,"context_lines":[{"line_number":3288,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3289,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"},{"line_number":3290,"context_line":"        event \u003d db.action_event_start(self.ctxt, event_values)"},{"line_number":3291,"context_line":"        # self.fail(self._dict_from_object(event, None))"},{"line_number":3292,"context_line":"        event_values[\u0027action_id\u0027] \u003d action[\u0027id\u0027]"},{"line_number":3293,"context_line":"        ignored \u003d self.IGNORED_FIELDS + [\u0027finish_time\u0027, \u0027traceback\u0027, \u0027result\u0027]"},{"line_number":3294,"context_line":"        self._assertEqualObjects(event_values, event, ignored)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_d7274ec8","line":3291,"in_reply_to":"9aa53dc9_6e256307","updated":"2015-04-10 09:55:02.000000000","message":"Done","commit_id":"4c7a5fa219141b2048b042518dc535a3942898c3"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"cb14ece506431f35d0ca8a399fc99c032997cdcf","unresolved":false,"context_lines":[{"line_number":3305,"context_line":"            uuid, ctxt\u003dfake_context))"},{"line_number":3306,"context_line":""},{"line_number":3307,"context_line":"        event_values \u003d {"},{"line_number":3308,"context_line":"            \u0027finish_time\u0027: timeutils.utcnow() + datetime.timedelta(seconds\u003d5),"},{"line_number":3309,"context_line":"            \u0027result\u0027: \u0027Success\u0027"},{"line_number":3310,"context_line":"        }"},{"line_number":3311,"context_line":"        event_values \u003d self._create_event_values(uuid, ctxt\u003dfake_context,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aa53dc9_ee9bb316","line":3308,"updated":"2015-04-09 18:03:38.000000000","message":"this is a bit weird and it looks a bit problematic. I\u0027m wondering if we can remove live time/datetime as dependency from this test.","commit_id":"4c7a5fa219141b2048b042518dc535a3942898c3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4861c213ed63ad1cadfe9bf97235d8a7e1adf5fd","unresolved":false,"context_lines":[{"line_number":3290,"context_line":"        uuid \u003d str(stdlib_uuid.uuid4())"},{"line_number":3291,"context_line":""},{"line_number":3292,"context_line":"        action_values \u003d self._create_action_values(uuid)"},{"line_number":3293,"context_line":"        action \u003d db.action_start(self.ctxt, action_values)"},{"line_number":3294,"context_line":""},{"line_number":3295,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3296,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_53bdbeb5","line":3293,"updated":"2015-05-04 22:53:08.000000000","message":"The self.ctxt is initialized in setUp() with context.get_admin_context(), so your test isn\u0027t actually testing different request_ids (they would both be None and action would be found by the first query _action_get_by_request_id).\n\nI think you need to create a different fake context for starting the action and pass it to _create_action_values above and here.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b37de3da33e479da519251ba36d46645b2bd9a7b","unresolved":false,"context_lines":[{"line_number":3290,"context_line":"        uuid \u003d str(stdlib_uuid.uuid4())"},{"line_number":3291,"context_line":""},{"line_number":3292,"context_line":"        action_values \u003d self._create_action_values(uuid)"},{"line_number":3293,"context_line":"        action \u003d db.action_start(self.ctxt, action_values)"},{"line_number":3294,"context_line":""},{"line_number":3295,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3296,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_610c61ed","line":3293,"in_reply_to":"3acd31a7_53bdbeb5","updated":"2015-05-05 03:06:52.000000000","message":"The request_id would be generated by oslo_context when we use context.get_admin_context(), so it\u0027s not None.\n\nhttps://github.com/openstack/oslo.context/blob/master/oslo_context/context.py#L65\n\nAnd the action with the request_id of self.ctxt would be record into DB.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d42b737690bcd3b490b8bee939bdcaaea76bad5b","unresolved":false,"context_lines":[{"line_number":3290,"context_line":"        uuid \u003d str(stdlib_uuid.uuid4())"},{"line_number":3291,"context_line":""},{"line_number":3292,"context_line":"        action_values \u003d self._create_action_values(uuid)"},{"line_number":3293,"context_line":"        action \u003d db.action_start(self.ctxt, action_values)"},{"line_number":3294,"context_line":""},{"line_number":3295,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3296,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_91fa1274","line":3293,"in_reply_to":"3acd31a7_610c61ed","updated":"2015-05-05 18:12:58.000000000","message":"Thank you for the explanation. Now I feel like I should have known request_id should be generated if not specified when a new RequestContext is constructed. It would be strange if it didn\u0027t.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b37de3da33e479da519251ba36d46645b2bd9a7b","unresolved":false,"context_lines":[{"line_number":3293,"context_line":"        action \u003d db.action_start(self.ctxt, action_values)"},{"line_number":3294,"context_line":""},{"line_number":3295,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3296,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"},{"line_number":3297,"context_line":"        event \u003d db.action_event_start(self.ctxt, event_values)"},{"line_number":3298,"context_line":"        event_values[\u0027action_id\u0027] \u003d action[\u0027id\u0027]"},{"line_number":3299,"context_line":"        ignored \u003d self.IGNORED_FIELDS + [\u0027finish_time\u0027, \u0027traceback\u0027, \u0027result\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_c101f5b0","line":3296,"updated":"2015-05-05 03:06:52.000000000","message":"Here, I use a new admin ctxt to assemble event_values, so its request_id is different with the action.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4861c213ed63ad1cadfe9bf97235d8a7e1adf5fd","unresolved":false,"context_lines":[{"line_number":3294,"context_line":""},{"line_number":3295,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3296,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"},{"line_number":3297,"context_line":"        event \u003d db.action_event_start(self.ctxt, event_values)"},{"line_number":3298,"context_line":"        event_values[\u0027action_id\u0027] \u003d action[\u0027id\u0027]"},{"line_number":3299,"context_line":"        ignored \u003d self.IGNORED_FIELDS + [\u0027finish_time\u0027, \u0027traceback\u0027, \u0027result\u0027]"},{"line_number":3300,"context_line":"        self._assertEqualObjects(event_values, event, ignored)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_d3530e6a","line":3297,"updated":"2015-05-04 22:53:08.000000000","message":"In this call, you will need to pass the admin context in order for _action_get_last_one_by_instance_uuid to run.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"4651592351163847b685d65ebef700967ae30fe7","unresolved":false,"context_lines":[{"line_number":3294,"context_line":""},{"line_number":3295,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3296,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"},{"line_number":3297,"context_line":"        event \u003d db.action_event_start(self.ctxt, event_values)"},{"line_number":3298,"context_line":"        event_values[\u0027action_id\u0027] \u003d action[\u0027id\u0027]"},{"line_number":3299,"context_line":"        ignored \u003d self.IGNORED_FIELDS + [\u0027finish_time\u0027, \u0027traceback\u0027, \u0027result\u0027]"},{"line_number":3300,"context_line":"        self._assertEqualObjects(event_values, event, ignored)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1aca2d91_68c72746","line":3297,"in_reply_to":"3acd31a7_4b23b7a7","updated":"2015-05-06 07:07:56.000000000","message":"I know your means, thanks, more clear unit test is welcome :)","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"f9579a918cbf0b05ba238963219b577911c4954f","unresolved":false,"context_lines":[{"line_number":3294,"context_line":""},{"line_number":3295,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3296,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"},{"line_number":3297,"context_line":"        event \u003d db.action_event_start(self.ctxt, event_values)"},{"line_number":3298,"context_line":"        event_values[\u0027action_id\u0027] \u003d action[\u0027id\u0027]"},{"line_number":3299,"context_line":"        ignored \u003d self.IGNORED_FIELDS + [\u0027finish_time\u0027, \u0027traceback\u0027, \u0027result\u0027]"},{"line_number":3300,"context_line":"        self._assertEqualObjects(event_values, event, ignored)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_4b23b7a7","line":3297,"in_reply_to":"3acd31a7_81a3fdb1","updated":"2015-05-05 12:21:59.000000000","message":"It might work, but it isn\u0027t clear to me, either. Tests should always be obvious as to what\u0027s going on.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"b37de3da33e479da519251ba36d46645b2bd9a7b","unresolved":false,"context_lines":[{"line_number":3294,"context_line":""},{"line_number":3295,"context_line":"        event_values \u003d self._create_event_values("},{"line_number":3296,"context_line":"            uuid, ctxt\u003dcontext.get_admin_context())"},{"line_number":3297,"context_line":"        event \u003d db.action_event_start(self.ctxt, event_values)"},{"line_number":3298,"context_line":"        event_values[\u0027action_id\u0027] \u003d action[\u0027id\u0027]"},{"line_number":3299,"context_line":"        ignored \u003d self.IGNORED_FIELDS + [\u0027finish_time\u0027, \u0027traceback\u0027, \u0027result\u0027]"},{"line_number":3300,"context_line":"        self._assertEqualObjects(event_values, event, ignored)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_81a3fdb1","line":3297,"in_reply_to":"3acd31a7_d3530e6a","updated":"2015-05-05 03:06:52.000000000","message":"event_values[\u0027request_id\u0027] will be used to queried the action record, it\u0027s different with the request_id of action, and the self.ctxt is admin context,  _action_get_last_one_by_instance_uuid should work.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4861c213ed63ad1cadfe9bf97235d8a7e1adf5fd","unresolved":false,"context_lines":[{"line_number":3304,"context_line":"    def test_instance_action_event_finish_with_different_request_id(self):"},{"line_number":3305,"context_line":"        uuid \u003d str(stdlib_uuid.uuid4())"},{"line_number":3306,"context_line":""},{"line_number":3307,"context_line":"        action \u003d db.action_start(self.ctxt, self._create_action_values(uuid))"},{"line_number":3308,"context_line":""},{"line_number":3309,"context_line":"        fake_context \u003d context.get_admin_context()"},{"line_number":3310,"context_line":"        db.action_event_start(self.ctxt, self._create_event_values("}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_13a2a64b","line":3307,"updated":"2015-05-04 22:53:08.000000000","message":"Same comment as L3293.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4861c213ed63ad1cadfe9bf97235d8a7e1adf5fd","unresolved":false,"context_lines":[{"line_number":3307,"context_line":"        action \u003d db.action_start(self.ctxt, self._create_action_values(uuid))"},{"line_number":3308,"context_line":""},{"line_number":3309,"context_line":"        fake_context \u003d context.get_admin_context()"},{"line_number":3310,"context_line":"        db.action_event_start(self.ctxt, self._create_event_values("},{"line_number":3311,"context_line":"            uuid, ctxt\u003dfake_context))"},{"line_number":3312,"context_line":""},{"line_number":3313,"context_line":"        event_values \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"3acd31a7_f38baac1","line":3310,"updated":"2015-05-04 22:53:08.000000000","message":"Same comment as L3297.","commit_id":"70a118b5532757de82bdb65946d73b5a90840fd8"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"462bf902105b70e389ef5dbeb540cf79a29862b7","unresolved":false,"context_lines":[{"line_number":7658,"context_line":""},{"line_number":7659,"context_line":"        match, done \u003d db.migrate_flavor_data(ctxt, None, {}, force)"},{"line_number":7660,"context_line":""},{"line_number":7661,"context_line":"        if not force:"},{"line_number":7662,"context_line":"            self.assertEqual(4, match)"},{"line_number":7663,"context_line":"            self.assertEqual(1, done)"},{"line_number":7664,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_7105c1c0","line":7661,"updated":"2015-05-06 13:46:47.000000000","message":"Really, really minor nit: it reads better when the \u0027if\u0027 statement is the positive case. IOW, it is better to write:\n\n    if force:\n        do_stuff()\n    else:\n        do_something_else()\n\nthan:\n\n    if not force:\n        do_something_else()\n    else:\n        do_stuff()","commit_id":"f132b81fd376543f93f8c7b361f20130c5222d1b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"a92b1bd13fbff5f6fbe8baa3935a64c923953c10","unresolved":false,"context_lines":[{"line_number":7658,"context_line":""},{"line_number":7659,"context_line":"        match, done \u003d db.migrate_flavor_data(ctxt, None, {}, force)"},{"line_number":7660,"context_line":""},{"line_number":7661,"context_line":"        if not force:"},{"line_number":7662,"context_line":"            self.assertEqual(4, match)"},{"line_number":7663,"context_line":"            self.assertEqual(1, done)"},{"line_number":7664,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"1aca2d91_a573014d","line":7661,"in_reply_to":"1aca2d91_7105c1c0","updated":"2015-05-06 22:15:28.000000000","message":"That\u0027s from a rebase, not this patch :)","commit_id":"f132b81fd376543f93f8c7b361f20130c5222d1b"}]}
