)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"48caa973d13c191fa1fb97ab8e4c253213308bd3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"[USSURI-ONLY] Do not manage masked service units"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a service unit for a containerized service has been"},{"line_number":10,"context_line":"manually masked, only ensure its container created, but not started."},{"line_number":11,"context_line":"Also do not manage its service unit and timer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partial-Bug: #1890789"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f560f44_f6a010a8","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":15},"updated":"2020-08-19 16:23:21.000000000","message":"what does it mean \"masked\"? I\u0027m not sure.\nI find the vocabulary confusing and the whole logic terribly complex.","commit_id":"b995b0ade83b5be73e1c0bece5c2fd468c9fd113"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"c42dc615370b79ed437641cf26b968b22462e346","unresolved":false,"context_lines":[{"line_number":7,"context_line":"[USSURI-ONLY] Do not manage masked service units"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a service unit for a containerized service has been"},{"line_number":10,"context_line":"manually masked, only ensure its container created, but not started."},{"line_number":11,"context_line":"Also do not manage its service unit and timer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partial-Bug: #1890789"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f560f44_1025ba09","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":15},"in_reply_to":"9f560f44_bbb794d8","updated":"2020-08-20 12:14:04.000000000","message":"ok I didn\u0027t know that terminology. Let me review again.","commit_id":"b995b0ade83b5be73e1c0bece5c2fd468c9fd113"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"e02556cc7ceb5a2474dd3c1c075cc03ff625a832","unresolved":false,"context_lines":[{"line_number":7,"context_line":"[USSURI-ONLY] Do not manage masked service units"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a service unit for a containerized service has been"},{"line_number":10,"context_line":"manually masked, only ensure its container created, but not started."},{"line_number":11,"context_line":"Also do not manage its service unit and timer."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partial-Bug: #1890789"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9f560f44_bbb794d8","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":15},"in_reply_to":"9f560f44_f6a010a8","updated":"2020-08-20 08:04:21.000000000","message":"what do you mean? Please try searching Web for \"masked service unit\". You\u0027ll find that that\u0027s a standard terminology for systemd.","commit_id":"b995b0ade83b5be73e1c0bece5c2fd468c9fd113"}],"paunch/tests/test_utils_systemctl.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"35a9dce965663db726c232676081dc481105a8b1","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    @mock.patch(\u0027subprocess.run\u0027, autospec\u003dTrue)"},{"line_number":107,"context_line":"    @mock.patch(\u0027tenacity.wait.wait_random_exponential.__call__\u0027,"},{"line_number":108,"context_line":"                return_value \u003d 0)"},{"line_number":109,"context_line":"    def test_enable_failed(self, mock_wait, mock_subprocess_run):"},{"line_number":110,"context_line":"        f \u003d mock.MagicMock()"},{"line_number":111,"context_line":"        f.returncode \u003d 42"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_188d4f7b","line":108,"updated":"2020-08-12 16:17:53.000000000","message":"pep8: E251 unexpected spaces around keyword / parameter equals","commit_id":"0e633c9c2a8d09ada941f2021063fc9dcf0ead1e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"35a9dce965663db726c232676081dc481105a8b1","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    @mock.patch(\u0027subprocess.run\u0027, autospec\u003dTrue)"},{"line_number":107,"context_line":"    @mock.patch(\u0027tenacity.wait.wait_random_exponential.__call__\u0027,"},{"line_number":108,"context_line":"                return_value \u003d 0)"},{"line_number":109,"context_line":"    def test_enable_failed(self, mock_wait, mock_subprocess_run):"},{"line_number":110,"context_line":"        f \u003d mock.MagicMock()"},{"line_number":111,"context_line":"        f.returncode \u003d 42"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_78e72b48","line":108,"updated":"2020-08-12 16:17:53.000000000","message":"pep8: E251 unexpected spaces around keyword / parameter equals","commit_id":"0e633c9c2a8d09ada941f2021063fc9dcf0ead1e"}],"paunch/utils/systemctl.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"75684dd4c329daa2aaa4ed2920ce718eb20f53d6","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class SystemctlException(Exception):"},{"line_number":22,"context_line":"    pass"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class SystemctlMaskedException(Exception):"},{"line_number":25,"context_line":"    pass"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def systemctl(cmd, log\u003dNone, ignore_errors\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_257f55ac","line":24,"updated":"2020-08-12 11:03:06.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"7c8b59679ab622448173530b6ca96e1baf642233"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"75684dd4c329daa2aaa4ed2920ce718eb20f53d6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class SystemctlMaskedException(Exception):"},{"line_number":25,"context_line":"    pass"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"def systemctl(cmd, log\u003dNone, ignore_errors\u003dFalse):"},{"line_number":28,"context_line":"    log \u003d log or common.configure_logging(__name__)"},{"line_number":29,"context_line":"    if not isinstance(cmd, list):"},{"line_number":30,"context_line":"        raise SystemctlException(\"systemctl cmd passed must be a list\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_057cd1b3","line":27,"updated":"2020-08-12 11:03:06.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"7c8b59679ab622448173530b6ca96e1baf642233"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"55fd3e4691e6db12c5f8786eec121e738472a49d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"    systemctl([\u0027is-active\u0027, \u0027-q\u0027, service], log)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"def is_masked(service, log\u003dNone):"},{"line_number":65,"context_line":"    out \u003d systemctl([\u0027is-enabled\u0027, service], log, ignore_errors\u003dTrue)"},{"line_number":66,"context_line":"    return \u0027masked\u0027 in out"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"# NOTE(bogdando): this implements a crash-loop with reset-failed"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_5bd598e4","line":66,"range":{"start_line":64,"start_character":0,"end_line":66,"end_character":26},"updated":"2020-08-20 08:06:35.000000000","message":"@Emilien, answering to your question on IRC - the name is_masked was choosed because this func leverages is-enabled CLI to verify if a service is masked or not. I hope that\u0027s simple and clear and straightforward?","commit_id":"b995b0ade83b5be73e1c0bece5c2fd468c9fd113"}]}
