)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dc9aea605d0455587e15f5df1b2cf6072c26797e","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Idd2e35bc95ed98ebc0340ff62e109e23c8adcb21 for context."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I960f8fd44d98427a72cb2bb0b238fdf2f734390f"},{"line_number":18,"context_line":"Closes-Bug: #1778804"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_a98d5032","line":18,"range":{"start_line":18,"start_character":13,"end_line":18,"end_character":20},"updated":"2018-08-08 22:54:07.000000000","message":"Bug 1751186 technically came first so if I respin I should update this and duplicate 1778804 to 1751186.","commit_id":"8debc353e77ed0725146050819f7cbdecdc89b03"}],"nova/objects/instance_group.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d0d230975bac83d052bdaffcbeef48a3c36e07b7","unresolved":false,"context_lines":[{"line_number":339,"context_line":"    @db_api.api_context_manager.writer"},{"line_number":340,"context_line":"    def _destroy_members_bulk_in_db(context, instance_uuids):"},{"line_number":341,"context_line":"        return context.session.query(api_models.InstanceGroupMember).filter("},{"line_number":342,"context_line":"            api_models.InstanceGroupMember.instance_uuid.in_(instance_uuids)).\\"},{"line_number":343,"context_line":"            delete(synchronize_session\u003dFalse)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_2db2334a","line":342,"range":{"start_line":342,"start_character":61,"end_line":342,"end_character":75},"updated":"2018-08-14 22:58:29.000000000","message":"The filtering of instance uuids isn\u0027t being covered in the tests.","commit_id":"8debc353e77ed0725146050819f7cbdecdc89b03"}],"nova/tests/functional/test_nova_manage.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d0d230975bac83d052bdaffcbeef48a3c36e07b7","unresolved":false,"context_lines":[{"line_number":771,"context_line":"        self.cli.archive_deleted_rows(verbose\u003dTrue)"},{"line_number":772,"context_line":"        # Assert the instance_group_member record was deleted."},{"line_number":773,"context_line":"        self.assertRegexpMatches(self.output.getvalue(),"},{"line_number":774,"context_line":"                                 \".*instance_group_member.*\\| 1.*\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_6d958b86","line":774,"updated":"2018-08-14 22:58:29.000000000","message":"It seems a bit weird to assert the database deletion of records by the output string of nova-manage. Can we add a test for the InstanceGroup.destroy_members_bulk method in nova/tests/functional/db/test_instance_group.py to go along with the rest of the existing InstanceGroup database method tests? And this nova-manage test can just be a unit test.\n\nElse, if you think it\u0027s better to do it this way, I think this test at least needs to boot one more server into the server group and _not_ delete the second server, to assert that only the one archived group member gets deleted in the end, to cover the instance uuid filtering of the new database method.","commit_id":"8debc353e77ed0725146050819f7cbdecdc89b03"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bc282352fe0f9ff1fd8172630d4349507914ef95","unresolved":false,"context_lines":[{"line_number":771,"context_line":"        self.cli.archive_deleted_rows(verbose\u003dTrue)"},{"line_number":772,"context_line":"        # Assert the instance_group_member record was deleted."},{"line_number":773,"context_line":"        self.assertRegexpMatches(self.output.getvalue(),"},{"line_number":774,"context_line":"                                 \".*instance_group_member.*\\| 1.*\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_07eee48a","line":774,"in_reply_to":"3f79a3b5_6d958b86","updated":"2018-08-29 20:07:00.000000000","message":"\u003e It seems a bit weird to assert the database deletion of records by\n \u003e the output string of nova-manage. Can we add a test for the\n \u003e InstanceGroup.destroy_members_bulk method in nova/tests/functional/db/test_instance_group.py\n \u003e to go along with the rest of the existing InstanceGroup database\n \u003e method tests? And this nova-manage test can just be a unit test.\n\nIt\u0027s been awhile but I believe I started by adding something to TestDatabaseArchive but then went this route, I can\u0027t remember at this point, it might have been some other tests but they didn\u0027t go through the CLI/object, just the DB API - probably trying to mimic something done in I483701a55576c245d091ff086b32081b392f746e.\n\n \u003e \n \u003e Else, if you think it\u0027s better to do it this way, I think this test\n \u003e at least needs to boot one more server into the server group and\n \u003e _not_ delete the second server, to assert that only the one\n \u003e archived group member gets deleted in the end, to cover the\n \u003e instance uuid filtering of the new database method.\n\nYeah that\u0027s easier so I\u0027ll do that, plus it tests the whole interface flow end to end, which is really why I wrote it as a functional test.","commit_id":"8debc353e77ed0725146050819f7cbdecdc89b03"}],"nova/tests/unit/test_nova_manage.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"45f8f3dd41aa694b0288204909af009291f4b54b","unresolved":false,"context_lines":[{"line_number":536,"context_line":""},{"line_number":537,"context_line":"        mock_db_archive.return_value \u003d (dict(instances\u003d2, consoles\u003d5), uuids)"},{"line_number":538,"context_line":"        mock_reqspec_destroy.return_value \u003d 2"},{"line_number":539,"context_line":"        mock_members_destroy \u003d 0"},{"line_number":540,"context_line":"        result \u003d self.commands.archive_deleted_rows(20, verbose\u003dverbose)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"        self.assertEqual(1, result)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9704697d","line":539,"updated":"2018-08-06 15:09:25.000000000","message":"gah","commit_id":"995e988ce394f2ad914cc1f3c63010715e4ddad3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d0d230975bac83d052bdaffcbeef48a3c36e07b7","unresolved":false,"context_lines":[{"line_number":542,"context_line":"        self.assertEqual(1, result)"},{"line_number":543,"context_line":"        mock_db_archive.assert_called_once_with(20)"},{"line_number":544,"context_line":"        self.assertEqual(1, mock_reqspec_destroy.call_count)"},{"line_number":545,"context_line":"        mock_members_destroy.assert_called_once()"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        output \u003d self.output.getvalue()"},{"line_number":548,"context_line":"        if verbose:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_6d67cbea","line":545,"range":{"start_line":545,"start_character":29,"end_line":545,"end_character":47},"updated":"2018-08-14 22:58:29.000000000","message":"TIL.","commit_id":"8debc353e77ed0725146050819f7cbdecdc89b03"}]}
