)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"33edb51f4da858151f54fdf0a2c2afb23067290c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"9d222e5b_0b3ce22f","updated":"2021-10-14 07:38:18.000000000","message":"recheck","commit_id":"9457c812dc9d572d6fdc7b69d12f5fb38c9614e1"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"2b21ab3441b967b6aa2b949a4c3f11a836cb549e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"0943f65c_d97aa2aa","updated":"2022-01-03 07:31:35.000000000","message":"recheck","commit_id":"05749553bbb0c23c72c535c4def3b3c14ccb3123"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"5540d9debb634eea0d41de4b2516f17d3bcc7e0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"a5442123_abaf5202","updated":"2021-12-06 08:40:36.000000000","message":"recheck","commit_id":"05749553bbb0c23c72c535c4def3b3c14ccb3123"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"4351ac15c17e76d16655d37a94d4aa01017fa67d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"8d9d9749_57415885","updated":"2022-01-03 14:12:01.000000000","message":"recheck","commit_id":"faf7de20df62a92c1e48737b320a77c909c326f8"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"bb8d07aec269efae8ea412adc42ec574c48ab326","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"afc0dbdc_854ab54c","updated":"2022-01-04 10:03:09.000000000","message":"recheck","commit_id":"faf7de20df62a92c1e48737b320a77c909c326f8"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"7ccf4e6e7d83b7f5d6ff96a45ff600a2b84b2fa5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"83b42ed3_eac67f4a","updated":"2022-01-05 10:32:43.000000000","message":"recheck","commit_id":"86a5de3f7fb14dd20135032e67126d0e4e2d4619"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"8d8fd252c8f52591e442f3fa0440d899c8649568","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"5993b96c_02fbce6c","updated":"2022-01-14 08:40:00.000000000","message":"I will review it and test it again today, but I -1 it just because we need to land first:\nhttps://review.opendev.org/c/openstack/validations-libs/+/823515\n\nBecause I want to tag 1.5.1 with this patch first.","commit_id":"c1f9791985a1da2978b1fdbfd15927475f629d18"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"51ab7a7fc4fe31bac840146df1bc61f357557310","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"5805be32_72e731d9","updated":"2022-01-14 09:39:09.000000000","message":"Jiri, won\u0027t it be possible to break it up in small patches in order to make the regression testing easier?","commit_id":"c1f9791985a1da2978b1fdbfd15927475f629d18"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"d30b85722a8b12f14876f30bce88190e9c2ae395","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"e485fe8e_194bec2e","in_reply_to":"5805be32_72e731d9","updated":"2022-01-14 10:06:06.000000000","message":"I don\u0027t believe that splitting into multiple patches would be likely to help with testing. \n\nPatch touches the core functionality of the framework, validation retrieval, results processing etc, but it does so in a functionally equivalent way. API signatures are preserved, you can still supply the args as before, but you will get a deprecation warning.\n\nIf I were to split it into multiple patches, the regression tests would have to be performed the same way for each. No time would be saved, and chance for something to slip would actually grow, because every time you would have to test the same things over and over again.\n\nIn any case...\n\nUnit tests and functional tests (those cover most common CLI uses) would make any sort of deficiency very obvious. Because every time you write \u0027validator *\u0027 you hit the changed code.[1]\n\n[1]https://438c3caaa5d91a776ad4-45249728f6b1474bc3957edc637c8eb0.ssl.cf2.rackcdn.com/802901/21/check/openstack-tox-cover/30fe512/cover/d_a1d54edad95637de_validation_actions_py.html","commit_id":"c1f9791985a1da2978b1fdbfd15927475f629d18"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"da15560ba90ba07e0f9be143e7337f597ee3d2d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"ba592060_62bc6242","updated":"2022-01-18 06:39:22.000000000","message":"Few nits in log messages but it looks good.","commit_id":"d60eb7062e3aff9b4e61e802a5fe97e06809ab05"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"454abd4d8ed23b98bcf3704d2e08bf478117967a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"d8c38c3f_f99bb870","updated":"2022-01-17 10:50:37.000000000","message":"recheck","commit_id":"d60eb7062e3aff9b4e61e802a5fe97e06809ab05"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"cbffd672fcfb4cbb5b3c9ea13ba8e97cc1851b91","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"184164d7_30274e86","updated":"2022-01-17 10:50:59.000000000","message":"tripleo-ci-centos-8-standalone-validation-libs failed on tempest\nrecheck","commit_id":"d60eb7062e3aff9b4e61e802a5fe97e06809ab05"}],"validations_libs/validation_actions.py":[{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"ba4e74b5b525eab61f763d90006ddcb8086f1433","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def __init__(self, validation_path\u003dNone, groups_path\u003dconstants.VALIDATION_GROUPS_INFO):"},{"line_number":46,"context_line":"        self.log \u003d logging.getLogger(__name__ + \".ValidationActions\")"},{"line_number":47,"context_line":"        self.validation_path \u003d (validation_path if validation_path"},{"line_number":48,"context_line":"                                else constants.ANSIBLE_VALIDATION_DIR)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.groups_path \u003d groups_path"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f47cebd_1a9ea421","line":47,"updated":"2021-07-29 21:29:06.000000000","message":"Could add what you did in [1] about the validation_path arg?\n\n[1] https://review.opendev.org/c/openstack/validations-libs/+/796482","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"1605f0fd0261c51a29b7dc5d8fde7fcdd93fdbd7","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def __init__(self, validation_path\u003dNone, groups_path\u003dconstants.VALIDATION_GROUPS_INFO):"},{"line_number":46,"context_line":"        self.log \u003d logging.getLogger(__name__ + \".ValidationActions\")"},{"line_number":47,"context_line":"        self.validation_path \u003d (validation_path if validation_path"},{"line_number":48,"context_line":"                                else constants.ANSIBLE_VALIDATION_DIR)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.groups_path \u003d groups_path"}],"source_content_type":"text/x-python","patch_set":1,"id":"d69f64a3_8cef892b","line":47,"in_reply_to":"1f47cebd_1a9ea421","updated":"2021-07-30 06:40:51.000000000","message":"I have rebased this patch on top of the [1],","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"ba4e74b5b525eab61f763d90006ddcb8086f1433","unresolved":true,"context_lines":[{"line_number":187,"context_line":"            ...     \u0027reason\u0027: None,"},{"line_number":188,"context_line":"            ...     \u0027lp\u0027: None}"},{"line_number":189,"context_line":"            \u003e\u003e\u003e v_actions._skip_hosts(validation, limit_hosts\u003d\u0027cloud1,cloud2\u0027)"},{"line_number":190,"context_line":"            \u0027!cloud1,cloud2\u0027"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        hosts \u003d validation.get(\u0027hosts\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"2e395d57_330b6432","line":190,"updated":"2021-07-29 21:29:06.000000000","message":"Don\u0027t add a tab or spaces here for the example to be consistent with the others. please.","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"1605f0fd0261c51a29b7dc5d8fde7fcdd93fdbd7","unresolved":true,"context_lines":[{"line_number":187,"context_line":"            ...     \u0027reason\u0027: None,"},{"line_number":188,"context_line":"            ...     \u0027lp\u0027: None}"},{"line_number":189,"context_line":"            \u003e\u003e\u003e v_actions._skip_hosts(validation, limit_hosts\u003d\u0027cloud1,cloud2\u0027)"},{"line_number":190,"context_line":"            \u0027!cloud1,cloud2\u0027"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        hosts \u003d validation.get(\u0027hosts\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"61e30edf_98e10fcf","line":190,"in_reply_to":"2e395d57_330b6432","updated":"2021-07-30 06:40:51.000000000","message":"The example wasn\u0027t in valid format though. Each statement has to start with \u0027\u003e\u003e\u003e\u0027 and continuing lines with ellipses, just like in python interactive interpreter.\n\nAnd if we do that we need to add indentation level, so the docs render properly.","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"d609df576892d25a4c29a754686af0c0dd6c83d3","unresolved":true,"context_lines":[{"line_number":187,"context_line":"            ...     \u0027reason\u0027: None,"},{"line_number":188,"context_line":"            ...     \u0027lp\u0027: None}"},{"line_number":189,"context_line":"            \u003e\u003e\u003e v_actions._skip_hosts(validation, limit_hosts\u003d\u0027cloud1,cloud2\u0027)"},{"line_number":190,"context_line":"            \u0027!cloud1,cloud2\u0027"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        hosts \u003d validation.get(\u0027hosts\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"21ef0d65_c5a7bea6","line":190,"in_reply_to":"33336c15_a58c33a8","updated":"2021-08-02 05:13:49.000000000","message":"Well if that is what you want, sure.","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"a66294a0312d207b1d9b5d6598ae11ddf00e07b6","unresolved":true,"context_lines":[{"line_number":187,"context_line":"            ...     \u0027reason\u0027: None,"},{"line_number":188,"context_line":"            ...     \u0027lp\u0027: None}"},{"line_number":189,"context_line":"            \u003e\u003e\u003e v_actions._skip_hosts(validation, limit_hosts\u003d\u0027cloud1,cloud2\u0027)"},{"line_number":190,"context_line":"            \u0027!cloud1,cloud2\u0027"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        hosts \u003d validation.get(\u0027hosts\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9256d294_6c5b0748","line":190,"in_reply_to":"61e30edf_98e10fcf","updated":"2021-07-30 08:07:50.000000000","message":"Yes I got it but I was talking about the indentation of the \u0027\u003e\u003e\u003e\u0027 and continuing lines with ellipses. There is no need to add a \u003cTAB\u003e or spaces here.\n\nAnd btw, the private methods are not auto documented in sphinx!","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"319988dc5f5403cf7164126252bf8754e180ea2f","unresolved":true,"context_lines":[{"line_number":187,"context_line":"            ...     \u0027reason\u0027: None,"},{"line_number":188,"context_line":"            ...     \u0027lp\u0027: None}"},{"line_number":189,"context_line":"            \u003e\u003e\u003e v_actions._skip_hosts(validation, limit_hosts\u003d\u0027cloud1,cloud2\u0027)"},{"line_number":190,"context_line":"            \u0027!cloud1,cloud2\u0027"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        hosts \u003d validation.get(\u0027hosts\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"e97e38cd_0b18ee60","line":190,"in_reply_to":"9256d294_6c5b0748","updated":"2021-07-30 10:11:34.000000000","message":"The tabs are needed, or else it will be rather hard to read in editor, which, as you noted, is the only place this docstring will show up.","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"df7e4dd88a5b77d5e8971087bae30e45139fdf76","unresolved":true,"context_lines":[{"line_number":187,"context_line":"            ...     \u0027reason\u0027: None,"},{"line_number":188,"context_line":"            ...     \u0027lp\u0027: None}"},{"line_number":189,"context_line":"            \u003e\u003e\u003e v_actions._skip_hosts(validation, limit_hosts\u003d\u0027cloud1,cloud2\u0027)"},{"line_number":190,"context_line":"            \u0027!cloud1,cloud2\u0027"},{"line_number":191,"context_line":"        \"\"\""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        hosts \u003d validation.get(\u0027hosts\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"33336c15_a58c33a8","line":190,"in_reply_to":"e97e38cd_0b18ee60","updated":"2021-07-30 19:41:42.000000000","message":"No tabs are not needed and could be on the same column of the :example: line.\n\nIt is not hard to read in my editor at all.\n\nAnd it is just a matter of consistency here as all the :example: in validations_libs don\u0027t have tabs. So either we add tabs everywhere or not! 😄","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"ba4e74b5b525eab61f763d90006ddcb8086f1433","unresolved":true,"context_lines":[{"line_number":239,"context_line":"            ...     \u0027lp\u0027: None}}"},{"line_number":240,"context_line":"            \u003e\u003e\u003e v_actions \u003d ValidationActions()"},{"line_number":241,"context_line":"            \u003e\u003e\u003e v_actions._skip_playbook(skip_list, \u0027xyz\u0027, None)"},{"line_number":242,"context_line":"            (None, None)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        \"\"\""},{"line_number":245,"context_line":"        if skip_list:"}],"source_content_type":"text/x-python","patch_set":1,"id":"45d7342c_a7901d88","line":242,"updated":"2021-07-29 21:29:06.000000000","message":"Here too, please.","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"1605f0fd0261c51a29b7dc5d8fde7fcdd93fdbd7","unresolved":true,"context_lines":[{"line_number":239,"context_line":"            ...     \u0027lp\u0027: None}}"},{"line_number":240,"context_line":"            \u003e\u003e\u003e v_actions \u003d ValidationActions()"},{"line_number":241,"context_line":"            \u003e\u003e\u003e v_actions._skip_playbook(skip_list, \u0027xyz\u0027, None)"},{"line_number":242,"context_line":"            (None, None)"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        \"\"\""},{"line_number":245,"context_line":"        if skip_list:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f659d47_21cccb88","line":242,"in_reply_to":"45d7342c_a7901d88","updated":"2021-07-30 06:40:51.000000000","message":"ditto","commit_id":"e0839fa8af301dd1d773edc6d46a94d78fdbffe1"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"a66294a0312d207b1d9b5d6598ae11ddf00e07b6","unresolved":true,"context_lines":[{"line_number":214,"context_line":"        :return a tuple of playbook and hosts"},{"line_number":215,"context_line":"        :rtype: `tuple`"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"        :example:"},{"line_number":218,"context_line":"            \u003e\u003e\u003e skip_list \u003d {"},{"line_number":219,"context_line":"            ... \u0027xyz\u0027: {"},{"line_number":220,"context_line":"            ...     \u0027hosts\u0027: \u0027cloud1\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2607179b_ed0ddfba","line":217,"updated":"2021-07-30 08:07:50.000000000","message":"Needs to be followed by a blank lines.","commit_id":"6860a60f357f764e2e2b8fcfe525dd1c42ce6383"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"6ce7471838f9866b88ffc5e4619d111a992f58f2","unresolved":true,"context_lines":[{"line_number":527,"context_line":"        # Get validations number by groups"},{"line_number":528,"context_line":"        for group in group_definitions:"},{"line_number":529,"context_line":"            validations \u003d v_utils.parse_all_validations_on_disk("},{"line_number":530,"context_line":"                self.validation_path, group[0])"},{"line_number":531,"context_line":"            group_info.append((group[0], group[1], len(validations)))"},{"line_number":532,"context_line":"        column_name \u003d (\"Groups\", \"Description\", \"Number of Validations\")"},{"line_number":533,"context_line":"        return (column_name, group_info)"}],"source_content_type":"text/x-python","patch_set":3,"id":"a690f919_ec4cd52c","line":530,"updated":"2021-07-30 11:20:44.000000000","message":"Having another issue here when calling parse_all_validations_on_disk:\n\n  $ validation -vvv --debug show group\n  Initialize Validation App.\n  found extension EntryPoint(name\u003d\u0027csv\u0027, value\u003d\u0027cliff.formatters.commaseparated:CSVLister\u0027, group\u003d\u0027cliff.formatter.list\u0027)\n  found extension EntryPoint(name\u003d\u0027json\u0027, value\u003d\u0027cliff.formatters.json_format:JSONFormatter\u0027, group\u003d\u0027cliff.formatter.list\u0027)\n  found extension EntryPoint(name\u003d\u0027table\u0027, value\u003d\u0027cliff.formatters.table:TableFormatter\u0027, group\u003d\u0027cliff.formatter.list\u0027)\n  found extension EntryPoint(name\u003d\u0027value\u0027, value\u003d\u0027cliff.formatters.value:ValueFormatter\u0027, group\u003d\u0027cliff.formatter.list\u0027)\n  found extension EntryPoint(name\u003d\u0027yaml\u0027, value\u003d\u0027cliff.formatters.yaml_format:YAMLFormatter\u0027, group\u003d\u0027cliff.formatter.list\u0027)\n  prepare_to_run_command ShowGroup\n  The \u0027groups\u0027 argument must be a List\n  Traceback (most recent call last):\n    File \"/usr/lib/python3.6/site-packages/cliff/app.py\", line 402, in run_subcommand\n      result \u003d cmd.run(parsed_args)\n    File \"/usr/lib/python3.6/site-packages/cliff/display.py\", line 115, in run\n      column_names, data \u003d self.take_action(parsed_args)\n    File \"/usr/local/lib/python3.6/site-packages/validations_libs/cli/show.py\", line 72, in take_action\n      return v_actions.group_information()\n    File \"/usr/local/lib/python3.6/site-packages/validations_libs/validation_actions.py\", line 530, in group_information\n      self.validation_path, group[0])\n    File \"/usr/local/lib/python3.6/site-packages/validations_libs/utils.py\", line 176, in parse_all_validations_on_disk\n      raise TypeError(\"The \u0027groups\u0027 argument must be a List\")\n  TypeError: The \u0027groups\u0027 argument must be a List\n  clean_up ShowGroup\n  got an error: The \u0027groups\u0027 argument must be a List","commit_id":"c9525c7465714b8f76a0e2dd418b10ac868cbc54"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"8d5a36fa510c56a702237040d0ea93478307e86c","unresolved":true,"context_lines":[{"line_number":17,"context_line":"import sys"},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import yaml"},{"line_number":20,"context_line":"import validations_libs"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from validations_libs.ansible import Ansible as v_ansible"},{"line_number":23,"context_line":"from validations_libs.group import Group"}],"source_content_type":"text/x-python","patch_set":4,"id":"97aea581_c685eefc","line":20,"updated":"2021-07-30 19:37:20.000000000","message":"Why?","commit_id":"d41a40c858712d2fc5d8a5f743f9b02cb32a27b8"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"87eb0f2452310e4d84c95bd4e9bfc56294ee0bf7","unresolved":true,"context_lines":[{"line_number":17,"context_line":"import sys"},{"line_number":18,"context_line":"import json"},{"line_number":19,"context_line":"import yaml"},{"line_number":20,"context_line":"import validations_libs"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from validations_libs.ansible import Ansible as v_ansible"},{"line_number":23,"context_line":"from validations_libs.group import Group"}],"source_content_type":"text/x-python","patch_set":4,"id":"b63fad1d_51eefd04","line":20,"in_reply_to":"97aea581_c685eefc","updated":"2021-08-02 05:09:26.000000000","message":"Leftover from temp structure.","commit_id":"d41a40c858712d2fc5d8a5f743f9b02cb32a27b8"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"8d5a36fa510c56a702237040d0ea93478307e86c","unresolved":true,"context_lines":[{"line_number":535,"context_line":"            n_matches \u003d len("},{"line_number":536,"context_line":"                [val for val in validations if group[0] in val[\u0027groups\u0027]])"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"            if n_matches \u003e 0:"},{"line_number":539,"context_line":"                group_info.append(("},{"line_number":540,"context_line":"                    group[0],"},{"line_number":541,"context_line":"                    group[1],"}],"source_content_type":"text/x-python","patch_set":4,"id":"111bb65d_df6cff1d","line":538,"updated":"2021-07-30 19:37:20.000000000","message":"Why displaying only the groups with at least one validation belonging to?\n\nWe should display all the groups.","commit_id":"d41a40c858712d2fc5d8a5f743f9b02cb32a27b8"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"87eb0f2452310e4d84c95bd4e9bfc56294ee0bf7","unresolved":true,"context_lines":[{"line_number":535,"context_line":"            n_matches \u003d len("},{"line_number":536,"context_line":"                [val for val in validations if group[0] in val[\u0027groups\u0027]])"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"            if n_matches \u003e 0:"},{"line_number":539,"context_line":"                group_info.append(("},{"line_number":540,"context_line":"                    group[0],"},{"line_number":541,"context_line":"                    group[1],"}],"source_content_type":"text/x-python","patch_set":4,"id":"8cf30fc6_ad0e2933","line":538,"in_reply_to":"111bb65d_df6cff1d","updated":"2021-08-02 05:09:26.000000000","message":"It\u0027s not going to hurt, although they won\u0027t be able to do much with that information. \nOk conditional goes out.","commit_id":"d41a40c858712d2fc5d8a5f743f9b02cb32a27b8"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"da15560ba90ba07e0f9be143e7337f597ee3d2d9","unresolved":true,"context_lines":[{"line_number":284,"context_line":"            if playbook in skip_list:"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"                self.log.warning(("},{"line_number":287,"context_line":"                    \"Validation \u0027{}\u0027 skipped on following hosts \u0027{}\u0027.\""},{"line_number":288,"context_line":"                    \"with following reason: \u0027{}\u0027\").format("},{"line_number":289,"context_line":"                        playbook,"},{"line_number":290,"context_line":"                        skip_list[playbook].get(\u0027hosts\u0027, \u0027All\u0027),"}],"source_content_type":"text/x-python","patch_set":22,"id":"441daf21_317de9df","line":287,"updated":"2022-01-18 06:39:22.000000000","message":"We got this here:\n\n   Validation \u0027check-cpu\u0027 skipped on following hosts \u0027localhost\u0027.with following reason: \u0027Unstable validation\u0027\n\nNeed a extra space after the period.","commit_id":"d60eb7062e3aff9b4e61e802a5fe97e06809ab05"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"f5a8826f1b5ec373fa08685b0a88639b1db2dd40","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            if playbook in skip_list:"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"                self.log.warning(("},{"line_number":287,"context_line":"                    \"Validation \u0027{}\u0027 skipped on following hosts \u0027{}\u0027.\""},{"line_number":288,"context_line":"                    \"with following reason: \u0027{}\u0027\").format("},{"line_number":289,"context_line":"                        playbook,"},{"line_number":290,"context_line":"                        skip_list[playbook].get(\u0027hosts\u0027, \u0027All\u0027),"}],"source_content_type":"text/x-python","patch_set":22,"id":"72c2fede_33a2b6c9","line":287,"in_reply_to":"441daf21_317de9df","updated":"2022-01-18 08:17:27.000000000","message":"Done","commit_id":"d60eb7062e3aff9b4e61e802a5fe97e06809ab05"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"da15560ba90ba07e0f9be143e7337f597ee3d2d9","unresolved":true,"context_lines":[{"line_number":469,"context_line":""},{"line_number":470,"context_line":"                msg \u003d ("},{"line_number":471,"context_line":"                    \"Following validations were not found in \u0027{}\u0027: {}\").format("},{"line_number":472,"context_line":"                    validations_dir, \u0027,\u0027.join(unknown_validations))"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"                raise RuntimeError(msg)"},{"line_number":475,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":22,"id":"6d6551c3_0f97f09a","line":472,"updated":"2022-01-18 06:39:22.000000000","message":"Add a space after the comma:\n\n     validations_dir, \u0027, \u0027.join(unknown_validations))","commit_id":"d60eb7062e3aff9b4e61e802a5fe97e06809ab05"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"f5a8826f1b5ec373fa08685b0a88639b1db2dd40","unresolved":false,"context_lines":[{"line_number":469,"context_line":""},{"line_number":470,"context_line":"                msg \u003d ("},{"line_number":471,"context_line":"                    \"Following validations were not found in \u0027{}\u0027: {}\").format("},{"line_number":472,"context_line":"                    validations_dir, \u0027,\u0027.join(unknown_validations))"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"                raise RuntimeError(msg)"},{"line_number":475,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":22,"id":"0330a60f_f54c3096","line":472,"in_reply_to":"6d6551c3_0f97f09a","updated":"2022-01-18 08:17:27.000000000","message":"Done","commit_id":"d60eb7062e3aff9b4e61e802a5fe97e06809ab05"},{"author":{"_account_id":11491,"name":"Gael Chamoulaud","email":"gchamoul@redhat.com","username":"gchamoul"},"change_message_id":"a14b9231cc0c9d7edc355548b1c7b6986f712598","unresolved":true,"context_lines":[{"line_number":557,"context_line":"                    if skipped_hosts:"},{"line_number":558,"context_line":"                        msg \u003d (\"Validation {} has been skipped \""},{"line_number":559,"context_line":"                               \"on hosts: {}\").format(_play,"},{"line_number":560,"context_line":"                                                      \u0027,\u0027.join(skipped_hosts))"},{"line_number":561,"context_line":"                        self.log.info(msg)"},{"line_number":562,"context_line":"            else:"},{"line_number":563,"context_line":"                self.log.info(\u0027Skipping Validations: {}\u0027.format(playbook))"}],"source_content_type":"text/x-python","patch_set":23,"id":"cc5d6815_153413ab","line":560,"updated":"2022-01-18 11:06:38.000000000","message":"Just noticed that we have twice the same kind of log message. Here and in _skip_playbooks(..)\n\nDo we need both? I think we just need that one above.","commit_id":"c0a86e78133da8d76c7b8105f14330477c007a0b"},{"author":{"_account_id":32926,"name":"Jiri Podivin","display_name":"jpodivin","email":"jpodivin@redhat.com","username":"jpodivin"},"change_message_id":"04dabeec95c92bcbc05c3541979fee27e9e8793b","unresolved":false,"context_lines":[{"line_number":557,"context_line":"                    if skipped_hosts:"},{"line_number":558,"context_line":"                        msg \u003d (\"Validation {} has been skipped \""},{"line_number":559,"context_line":"                               \"on hosts: {}\").format(_play,"},{"line_number":560,"context_line":"                                                      \u0027,\u0027.join(skipped_hosts))"},{"line_number":561,"context_line":"                        self.log.info(msg)"},{"line_number":562,"context_line":"            else:"},{"line_number":563,"context_line":"                self.log.info(\u0027Skipping Validations: {}\u0027.format(playbook))"}],"source_content_type":"text/x-python","patch_set":23,"id":"bb20e89d_84281c85","line":560,"in_reply_to":"cc5d6815_153413ab","updated":"2022-01-18 12:47:49.000000000","message":"Good catch, two removed one kept.","commit_id":"c0a86e78133da8d76c7b8105f14330477c007a0b"}]}
