)]}'
{"nova/compute/api.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ae4984d4d6a4fadabd10db8ce8e96f32bc42cce8","unresolved":false,"context_lines":[{"line_number":2600,"context_line":"        self._record_action_start(context, instance,"},{"line_number":2601,"context_line":"                                  instance_actions.BACKUP)"},{"line_number":2602,"context_line":""},{"line_number":2603,"context_line":"        LOG.info(\u0027xxxxxxx recorded action %(req_id)s for %(inst)\u0027,"},{"line_number":2604,"context_line":"                 {\u0027req_id\u0027: context.request_id,"},{"line_number":2605,"context_line":"                  \u0027inst\u0027: instance.uuid})"},{"line_number":2606,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"df87a7cf_c585ead0","line":2603,"range":{"start_line":2603,"start_character":57,"end_line":2603,"end_character":64},"updated":"2017-12-07 05:48:48.000000000","message":"%(inst)s","commit_id":"6c4d052924d7dc193eb75dcc07d4d1b786c5757b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"884437469fe895f3db488ccb47e282b8fddd5e7d","unresolved":false,"context_lines":[{"line_number":281,"context_line":"                                                  action, want_result\u003dTrue)"},{"line_number":282,"context_line":"        if action \u003d\u003d instance_actions.BACKUP:"},{"line_number":283,"context_line":"            LOG.info(\u0027xxxxxxxxxx recorded action %(req_id)s for %(inst)s \u0027"},{"line_number":284,"context_line":"                     \u0027action_obj %(obj)\u0027,"},{"line_number":285,"context_line":"                     {\u0027req_id\u0027: context.request_id,"},{"line_number":286,"context_line":"                      \u0027inst\u0027: instance.uuid,"},{"line_number":287,"context_line":"                      \u0027obj\u0027: obj"}],"source_content_type":"text/x-python","patch_set":11,"id":"df87a7cf_9799417a","line":284,"range":{"start_line":284,"start_character":33,"end_line":284,"end_character":39},"updated":"2017-12-07 22:16:15.000000000","message":"%(obj)s","commit_id":"52cb699730d632348807cd3d4a99a1a8188516d8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bd825d4958ed2c64597881c1a25cc453165cf8d6","unresolved":false,"context_lines":[{"line_number":2598,"context_line":"            image_meta \u003d self._create_image(context, instance,"},{"line_number":2599,"context_line":"                                            name, \u0027backup\u0027,"},{"line_number":2600,"context_line":"                                            extra_properties\u003dprops_copy)"},{"line_number":2601,"context_line":""},{"line_number":2602,"context_line":"        # NOTE(comstud): Any changes to this method should also be made"},{"line_number":2603,"context_line":"        # to the backup_instance() method in nova/cells/messaging.py"},{"line_number":2604,"context_line":""},{"line_number":2605,"context_line":"        instance.task_state \u003d task_states.IMAGE_BACKUP"},{"line_number":2606,"context_line":"        instance.save(expected_task_state\u003d[None])"}],"source_content_type":"text/x-python","patch_set":13,"id":"df87a7cf_af0653cd","line":2603,"range":{"start_line":2601,"start_character":0,"end_line":2603,"end_character":68},"updated":"2017-12-08 18:14:24.000000000","message":"This is the key. The cells messaging code isn\u0027t replaying this top-level API call down in the child cell API, so that\u0027s why the action record doesn\u0027t get created in the child cell and why compute can\u0027t find it.\n\n2be50f0f3f02830798c25442dc54e92faa18106b\n\nSo we either have to create the action record in the child cell (cells/messaging?), or we need a blacklist in the EventReporter where if cells is enabled (CONF.cells.enable), and the action event is in a blacklist, we ignore it and don\u0027t try to lookup the action because we know it won\u0027t be there. That\u0027s gross but it would at least be temporary until we remove cells v1.","commit_id":"2ef409161767323ed219e6dadaf45e142b233783"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"1b6d9380e7778e0c40d1aab69f0d8471f30109cf","unresolved":false,"context_lines":[{"line_number":2611,"context_line":"        LOG.info(\u0027xxxxxxx recorded action %(req_id)s for %(inst)s\u0027,"},{"line_number":2612,"context_line":"                 {\u0027req_id\u0027: context.request_id,"},{"line_number":2613,"context_line":"                  \u0027inst\u0027: instance.uuid})"},{"line_number":2614,"context_line":"        time.sleep(5)"},{"line_number":2615,"context_line":""},{"line_number":2616,"context_line":"        self.compute_rpcapi.backup_instance(context, instance,"},{"line_number":2617,"context_line":"                                            image_meta[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"df87a7cf_d64b4128","line":2614,"range":{"start_line":2614,"start_character":0,"end_line":2614,"end_character":21},"updated":"2017-12-08 08:58:31.000000000","message":"lol","commit_id":"2ef409161767323ed219e6dadaf45e142b233783"}],"nova/compute/instance_actions.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f75e57f6e18ba1823eff75f823a2e258a846584","unresolved":false,"context_lines":[{"line_number":68,"context_line":"SWAP_VOLUME \u003d \u0027swap_volume\u0027"},{"line_number":69,"context_line":"LOCK \u003d \u0027lock\u0027"},{"line_number":70,"context_line":"UNLOCK \u003d \u0027unlock\u0027"},{"line_number":71,"context_line":"BACKUP \u003d \u0027backup\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"df87a7cf_10a33fa0","line":71,"range":{"start_line":71,"start_character":10,"end_line":71,"end_character":16},"updated":"2017-12-05 18:47:04.000000000","message":"This should be \"createBackup\" to match the action from the API:\n\nhttps://developer.openstack.org/api-ref/compute/#create-server-back-up-createbackup-action","commit_id":"f87dc59d6c8820b1121628a842e7353238f20703"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"37467320e1c17fa6eb644dd351a7c98ed6cdcef4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"SWAP_VOLUME \u003d \u0027swap_volume\u0027"},{"line_number":69,"context_line":"LOCK \u003d \u0027lock\u0027"},{"line_number":70,"context_line":"UNLOCK \u003d \u0027unlock\u0027"},{"line_number":71,"context_line":"BACKUP \u003d \u0027createBackup\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"df87a7cf_c57538ce","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":6},"updated":"2017-12-14 14:31:22.000000000","message":"i like CREATE_BACKUP.","commit_id":"0aa7aafdd754629e1b3922853fa0b441ace76330"}],"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0dc9050a0f190c7b752ce92a5ffe575297302dd","unresolved":false,"context_lines":[{"line_number":3215,"context_line":""},{"line_number":3216,"context_line":"    @wrap_exception()"},{"line_number":3217,"context_line":"    @reverts_task_state"},{"line_number":3218,"context_line":"    @wrap_instance_event(prefix\u003d\u0027compute\u0027)"},{"line_number":3219,"context_line":"    @wrap_instance_fault"},{"line_number":3220,"context_line":"    def backup_instance(self, context, image_id, instance, backup_type,"},{"line_number":3221,"context_line":"                        rotation):"}],"source_content_type":"text/x-python","patch_set":11,"id":"df87a7cf_d720294b","line":3218,"updated":"2017-12-07 22:11:04.000000000","message":"Oh here you go, this is where things explode in the cellsv1 job:\n\nhttp://logs.openstack.org/76/523676/11/check/legacy-tempest-dsvm-cells/1d155c6/logs/screen-n-cpu.txt.gz?level\u003dTRACE#_Dec_07_09_02_09_579991\n\nThe instance action record created in the API isn\u0027t found. I don\u0027t know if we\u0027re in the top-level API or the cell API when we create the action record, but I\u0027d check to see what other cellsv1 methods that were already creating action records are doing, if anything, that is special for recording actions.","commit_id":"52cb699730d632348807cd3d4a99a1a8188516d8"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"112b474236af4ee23bf1cb38eac94001fb451436","unresolved":false,"context_lines":[{"line_number":3392,"context_line":"                      fake_delete)"},{"line_number":3393,"context_line":""},{"line_number":3394,"context_line":"        inst_obj \u003d self._get_snapshotting_instance()"},{"line_number":3395,"context_line":"        with mock.patch.object(compute_utils, \u0027EventReporter\u0027) as mock_event:"},{"line_number":3396,"context_line":"            if method \u003d\u003d \u0027snapshot\u0027:"},{"line_number":3397,"context_line":"                self.assertRaises(test.TestingException,"},{"line_number":3398,"context_line":"                                  self.compute.snapshot_instance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"df87a7cf_b017f3a3","line":3395,"updated":"2017-12-05 18:51:27.000000000","message":"This can be scoped to the else block since that\u0027s the only place you check that it\u0027s called.","commit_id":"41d444d1ebc56550b471bd9ee13ab91e1caf7008"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"44c01fb0164029ce71f34785c1979f3cafa56646","unresolved":false,"context_lines":[{"line_number":3392,"context_line":"                      fake_delete)"},{"line_number":3393,"context_line":""},{"line_number":3394,"context_line":"        inst_obj \u003d self._get_snapshotting_instance()"},{"line_number":3395,"context_line":"        with mock.patch.object(compute_utils, \u0027EventReporter\u0027) as mock_event:"},{"line_number":3396,"context_line":"            if method \u003d\u003d \u0027snapshot\u0027:"},{"line_number":3397,"context_line":"                self.assertRaises(test.TestingException,"},{"line_number":3398,"context_line":"                                  self.compute.snapshot_instance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"df87a7cf_15d00850","line":3395,"in_reply_to":"df87a7cf_b017f3a3","updated":"2017-12-06 01:16:22.000000000","message":"Ok, My next patch was to do the snapshot one, so I did so, but I can do this in the next patch. :)","commit_id":"41d444d1ebc56550b471bd9ee13ab91e1caf7008"}]}
