)]}'
{"ironic/conductor/manager.py":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"74f22a409506c315132f8a9d1a55c21a5937bbab","unresolved":false,"context_lines":[{"line_number":3192,"context_line":"        try:"},{"line_number":3193,"context_line":"            if configdrive:"},{"line_number":3194,"context_line":"                _store_configdrive(node, configdrive)"},{"line_number":3195,"context_line":"        except (exception.SwiftOperationError, exception.ConfigInvalid) as e:"},{"line_number":3196,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3197,"context_line":"                handle_failure("},{"line_number":3198,"context_line":"                    e, task,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_8a56295c","line":3195,"range":{"start_line":3195,"start_character":47,"end_line":3195,"end_character":70},"updated":"2018-02-08 11:17:14.000000000","message":"This exception doesn\u0027t relevant to the bug, please update commit message if this patch intends to address other issues.","commit_id":"e6610e1cd1d5fa10480ca9804677c079a74a1e97"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"75369e226f1d0e93263ec9b0c5687a0b87c2812b","unresolved":false,"context_lines":[{"line_number":3192,"context_line":"        try:"},{"line_number":3193,"context_line":"            if configdrive:"},{"line_number":3194,"context_line":"                _store_configdrive(node, configdrive)"},{"line_number":3195,"context_line":"        except (exception.SwiftOperationError, exception.ConfigInvalid) as e:"},{"line_number":3196,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3197,"context_line":"                handle_failure("},{"line_number":3198,"context_line":"                    e, task,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa0c359_81b0388c","line":3195,"range":{"start_line":3195,"start_character":47,"end_line":3195,"end_character":70},"in_reply_to":"3fa0c359_8a56295c","updated":"2018-02-09 02:17:14.000000000","message":"I updated the commit message. This exception also should be caught for moving the node to DEPLOYFAIL state.\n\nThanks.","commit_id":"e6610e1cd1d5fa10480ca9804677c079a74a1e97"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"2ce5b02dc82b109f037c5134a712e771ce323015","unresolved":false,"context_lines":[{"line_number":3209,"context_line":"                node.obj_reset_changes()"},{"line_number":3210,"context_line":"                handle_failure("},{"line_number":3211,"context_line":"                    e, task,"},{"line_number":3212,"context_line":"                    (\u0027Error while storing the configdrive for %(node)s to DB: \u0027"},{"line_number":3213,"context_line":"                     \u0027%(err)s\u0027),"},{"line_number":3214,"context_line":"                    _(\"Failed to store the configdrive to DB. : %s\"))"},{"line_number":3215,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_93964b93","line":3212,"range":{"start_line":3212,"start_character":71,"end_line":3212,"end_character":76},"updated":"2018-02-09 02:31:52.000000000","message":"into the database:","commit_id":"1955b746a5cf98308b257d6d36e656ce55bc87d4"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9b3f71f99bf2d8898c6df4ba9ad9b9577f55f92b","unresolved":false,"context_lines":[{"line_number":3209,"context_line":"                node.obj_reset_changes()"},{"line_number":3210,"context_line":"                handle_failure("},{"line_number":3211,"context_line":"                    e, task,"},{"line_number":3212,"context_line":"                    (\u0027Error while storing the configdrive for %(node)s to DB: \u0027"},{"line_number":3213,"context_line":"                     \u0027%(err)s\u0027),"},{"line_number":3214,"context_line":"                    _(\"Failed to store the configdrive to DB. : %s\"))"},{"line_number":3215,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_69d15223","line":3212,"range":{"start_line":3212,"start_character":71,"end_line":3212,"end_character":76},"in_reply_to":"3fa0c359_93964b93","updated":"2018-02-09 04:32:27.000000000","message":"Done","commit_id":"1955b746a5cf98308b257d6d36e656ce55bc87d4"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"2ce5b02dc82b109f037c5134a712e771ce323015","unresolved":false,"context_lines":[{"line_number":3211,"context_line":"                    e, task,"},{"line_number":3212,"context_line":"                    (\u0027Error while storing the configdrive for %(node)s to DB: \u0027"},{"line_number":3213,"context_line":"                     \u0027%(err)s\u0027),"},{"line_number":3214,"context_line":"                    _(\"Failed to store the configdrive to DB. : %s\"))"},{"line_number":3215,"context_line":"        except Exception as e:"},{"line_number":3216,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3217,"context_line":"                handle_failure("}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_538c437e","line":3214,"range":{"start_line":3214,"start_character":55,"end_line":3214,"end_character":63},"updated":"2018-02-09 02:31:52.000000000","message":"in the database:","commit_id":"1955b746a5cf98308b257d6d36e656ce55bc87d4"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9b3f71f99bf2d8898c6df4ba9ad9b9577f55f92b","unresolved":false,"context_lines":[{"line_number":3211,"context_line":"                    e, task,"},{"line_number":3212,"context_line":"                    (\u0027Error while storing the configdrive for %(node)s to DB: \u0027"},{"line_number":3213,"context_line":"                     \u0027%(err)s\u0027),"},{"line_number":3214,"context_line":"                    _(\"Failed to store the configdrive to DB. : %s\"))"},{"line_number":3215,"context_line":"        except Exception as e:"},{"line_number":3216,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3217,"context_line":"                handle_failure("}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_89ce1e80","line":3214,"range":{"start_line":3214,"start_character":55,"end_line":3214,"end_character":63},"in_reply_to":"3fa0c359_538c437e","updated":"2018-02-09 04:32:27.000000000","message":"Done","commit_id":"1955b746a5cf98308b257d6d36e656ce55bc87d4"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"5222d2503f113a48c984d65dc6a3634f47f3f533","unresolved":false,"context_lines":[{"line_number":3213,"context_line":"                     \u0027the database: %(err)s\u0027),"},{"line_number":3214,"context_line":"                    _(\"Failed to store the configdrive in the database. : %s\"))"},{"line_number":3215,"context_line":"        except Exception as e:"},{"line_number":3216,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3217,"context_line":"                handle_failure("},{"line_number":3218,"context_line":"                    e, task,"},{"line_number":3219,"context_line":"                    (\u0027Unexpected error while preparing the configdrive for \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa0c359_db5f16e3","line":3216,"updated":"2018-02-20 15:41:58.000000000","message":"the ship has sailed, but in general, we shouldn\u0027t be reraising Exceptions. We should raise an IronicException instead.","commit_id":"927c487a0f822ab789f38be5f895fe061e5e71cb"}],"ironic/tests/unit/conductor/test_manager.py":[{"author":{"_account_id":11929,"name":"Michael Turek","email":"mjturek@linux.vnet.ibm.com","username":"mjturek"},"change_message_id":"7a097df49ab8c0756bd2e63f738b7fa3b53ba27c","unresolved":false,"context_lines":[{"line_number":5777,"context_line":"        self.node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027,"},{"line_number":5778,"context_line":"                                               instance_info\u003dNone)"},{"line_number":5779,"context_line":""},{"line_number":5780,"context_line":"    def test_store_configdrive(self, mock_swift):"},{"line_number":5781,"context_line":"        manager._store_configdrive(self.node, \u0027foo\u0027)"},{"line_number":5782,"context_line":"        expected_instance_info \u003d {\u0027configdrive\u0027: \u0027foo\u0027}"},{"line_number":5783,"context_line":"        self.node.refresh()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_59a1ab45","line":5780,"updated":"2018-02-09 22:41:58.000000000","message":"I think we should probably assert that node.save() was called.","commit_id":"77e1e72503fcbfc9eefe0d04220354856f44226d"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"a24c90eb56a79b75ae296daf97046c5f3cf6ef37","unresolved":false,"context_lines":[{"line_number":5777,"context_line":"        self.node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027,"},{"line_number":5778,"context_line":"                                               instance_info\u003dNone)"},{"line_number":5779,"context_line":""},{"line_number":5780,"context_line":"    def test_store_configdrive(self, mock_swift):"},{"line_number":5781,"context_line":"        manager._store_configdrive(self.node, \u0027foo\u0027)"},{"line_number":5782,"context_line":"        expected_instance_info \u003d {\u0027configdrive\u0027: \u0027foo\u0027}"},{"line_number":5783,"context_line":"        self.node.refresh()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_96cfd227","line":5780,"in_reply_to":"3fa0c359_59a1ab45","updated":"2018-02-13 01:22:17.000000000","message":"node.refresh() can be used to see if node.save() is called instead of the assertion because node.refresh() reloads a node from database.","commit_id":"77e1e72503fcbfc9eefe0d04220354856f44226d"},{"author":{"_account_id":11929,"name":"Michael Turek","email":"mjturek@linux.vnet.ibm.com","username":"mjturek"},"change_message_id":"477660f1c834995982932c12262b59a6d9c7a12e","unresolved":false,"context_lines":[{"line_number":5777,"context_line":"        self.node \u003d obj_utils.create_test_node(self.context, driver\u003d\u0027fake\u0027,"},{"line_number":5778,"context_line":"                                               instance_info\u003dNone)"},{"line_number":5779,"context_line":""},{"line_number":5780,"context_line":"    def test_store_configdrive(self, mock_swift):"},{"line_number":5781,"context_line":"        manager._store_configdrive(self.node, \u0027foo\u0027)"},{"line_number":5782,"context_line":"        expected_instance_info \u003d {\u0027configdrive\u0027: \u0027foo\u0027}"},{"line_number":5783,"context_line":"        self.node.refresh()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_eb4d01c4","line":5780,"in_reply_to":"3fa0c359_96cfd227","updated":"2018-02-13 14:45:04.000000000","message":"Ah - that makes total sense, thanks!","commit_id":"77e1e72503fcbfc9eefe0d04220354856f44226d"},{"author":{"_account_id":11929,"name":"Michael Turek","email":"mjturek@linux.vnet.ibm.com","username":"mjturek"},"change_message_id":"7a097df49ab8c0756bd2e63f738b7fa3b53ba27c","unresolved":false,"context_lines":[{"line_number":5784,"context_line":"        self.assertEqual(expected_instance_info, self.node.instance_info)"},{"line_number":5785,"context_line":"        self.assertFalse(mock_swift.called)"},{"line_number":5786,"context_line":""},{"line_number":5787,"context_line":"    def test_store_configdrive_swift(self, mock_swift):"},{"line_number":5788,"context_line":"        container_name \u003d \u0027foo_container\u0027"},{"line_number":5789,"context_line":"        timeout \u003d 123"},{"line_number":5790,"context_line":"        expected_obj_name \u003d \u0027configdrive-%s\u0027 % self.node.uuid"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_b98f8fcb","line":5787,"updated":"2018-02-09 22:41:58.000000000","message":"Ditto","commit_id":"77e1e72503fcbfc9eefe0d04220354856f44226d"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"a24c90eb56a79b75ae296daf97046c5f3cf6ef37","unresolved":false,"context_lines":[{"line_number":5784,"context_line":"        self.assertEqual(expected_instance_info, self.node.instance_info)"},{"line_number":5785,"context_line":"        self.assertFalse(mock_swift.called)"},{"line_number":5786,"context_line":""},{"line_number":5787,"context_line":"    def test_store_configdrive_swift(self, mock_swift):"},{"line_number":5788,"context_line":"        container_name \u003d \u0027foo_container\u0027"},{"line_number":5789,"context_line":"        timeout \u003d 123"},{"line_number":5790,"context_line":"        expected_obj_name \u003d \u0027configdrive-%s\u0027 % self.node.uuid"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa0c359_76d806ee","line":5787,"in_reply_to":"3fa0c359_b98f8fcb","updated":"2018-02-13 01:22:17.000000000","message":"ditto","commit_id":"77e1e72503fcbfc9eefe0d04220354856f44226d"}]}
