)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"1244cb4b156819692b48e2a601ca51dca29e5196","unresolved":false,"context_lines":[{"line_number":10,"context_line":"devices are in use by active logical volumes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I9781007559e074f2b102f6f90c1aed6def1b02be"},{"line_number":13,"context_line":"Closes-Bug: 1855704"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_b84f7a8a","line":13,"updated":"2019-12-09 11:25:54.000000000","message":"this should be \"Related-bug\"; \"Closes-bug\" goes on the THT submission","commit_id":"edbc4bd19dd066e95b58b3e5efab06e6a27922f9"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"0543dc7e0e10f6e3bf088e9540fc847824506e8a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"devices are in use by active logical volumes."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I9781007559e074f2b102f6f90c1aed6def1b02be"},{"line_number":13,"context_line":"Closes-Bug: 1855704"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_118ab9bb","line":13,"in_reply_to":"3fa7e38b_b84f7a8a","updated":"2019-12-17 06:28:08.000000000","message":"I\u0027ve also seen \"Partial-Bug\" used in these circumstances.","commit_id":"edbc4bd19dd066e95b58b3e5efab06e6a27922f9"}],"doc/source/roles/role-tripleo-lvmfilter.rst":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe3d28f5b8c304010c4b3bfff246587f296ef8d6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Role - tripleo-lvmfilter"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":".. ansibleautoplugin::"}],"source_content_type":"text/x-rst","patch_set":34,"id":"9f560f44_11aa1270","line":2,"updated":"2020-09-17 14:28:11.000000000","message":"nit: tripleo_lvmfilter\n\nIt seems a number of the doc files weren\u0027t updated during the transition from using \u0027-\u0027 to \u0027_\u0027 for name delimiters.","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"5ac8713ffedaccb133c2a45aa4cff70fa7f66a57","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Role - tripleo-lvmfilter"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":".. ansibleautoplugin::"}],"source_content_type":"text/x-rst","patch_set":34,"id":"9f560f44_973e1289","line":2,"in_reply_to":"9f560f44_11aa1270","updated":"2020-09-17 15:25:36.000000000","message":"ack","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"}],"tripleo_ansible/ansible_plugins/modules/lvm2_physical_devices_facts.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"884a0432e78e9c3e055f77bd2f4717f8d4ea40dc","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    if not out:"},{"line_number":61,"context_line":"        return []"},{"line_number":62,"context_line":"    vgs \u003d list(set(out.split()))"},{"line_number":63,"context_line":"    return pvs"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"def run_module():"}],"source_content_type":"text/x-python","patch_set":42,"id":"9f560f44_deecc329","line":63,"updated":"2020-10-09 19:08:34.000000000","message":"linters: F821 undefined name \u0027pvs\u0027","commit_id":"fbcac94eefa2483d648875d055219f4dca84140a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"884a0432e78e9c3e055f77bd2f4717f8d4ea40dc","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    if not out:"},{"line_number":61,"context_line":"        return []"},{"line_number":62,"context_line":"    vgs \u003d list(set(out.split()))"},{"line_number":63,"context_line":"    return pvs"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"def run_module():"}],"source_content_type":"text/x-python","patch_set":42,"id":"9f560f44_fed6e752","line":63,"updated":"2020-10-09 19:08:34.000000000","message":"role-addition: F821 undefined name \u0027pvs\u0027","commit_id":"fbcac94eefa2483d648875d055219f4dca84140a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"884a0432e78e9c3e055f77bd2f4717f8d4ea40dc","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"def run_module():"},{"line_number":67,"context_line":"    module_args\u003d{}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    result \u003d dict("},{"line_number":70,"context_line":"        changed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":42,"id":"9f560f44_bef10f03","line":67,"updated":"2020-10-09 19:08:34.000000000","message":"linters: E225 missing whitespace around operator","commit_id":"fbcac94eefa2483d648875d055219f4dca84140a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"884a0432e78e9c3e055f77bd2f4717f8d4ea40dc","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"def run_module():"},{"line_number":67,"context_line":"    module_args\u003d{}"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    result \u003d dict("},{"line_number":70,"context_line":"        changed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":42,"id":"9f560f44_5ee0b327","line":67,"updated":"2020-10-09 19:08:34.000000000","message":"role-addition: E225 missing whitespace around operator","commit_id":"fbcac94eefa2483d648875d055219f4dca84140a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"884a0432e78e9c3e055f77bd2f4717f8d4ea40dc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    active_pvs \u003d []"},{"line_number":84,"context_line":"    for vgs in active_vgs:"},{"line_number":85,"context_line":"        active_pvs.append(get_pvs_in_use_by_active_vgs(module, active_vgs))"},{"line_number":86,"context_line":"    pvs \u003d {\u0027lvm2_active_pvs\u0027 : list(set(active_pvs))}"},{"line_number":87,"context_line":"    result[\u0027ansible_facts\u0027] \u003d pvs"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    module.exit_json(**result)"}],"source_content_type":"text/x-python","patch_set":42,"id":"9f560f44_1edabb77","line":86,"updated":"2020-10-09 19:08:34.000000000","message":"linters: E203 whitespace before \u0027:\u0027","commit_id":"fbcac94eefa2483d648875d055219f4dca84140a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"884a0432e78e9c3e055f77bd2f4717f8d4ea40dc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    active_pvs \u003d []"},{"line_number":84,"context_line":"    for vgs in active_vgs:"},{"line_number":85,"context_line":"        active_pvs.append(get_pvs_in_use_by_active_vgs(module, active_vgs))"},{"line_number":86,"context_line":"    pvs \u003d {\u0027lvm2_active_pvs\u0027 : list(set(active_pvs))}"},{"line_number":87,"context_line":"    result[\u0027ansible_facts\u0027] \u003d pvs"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    module.exit_json(**result)"}],"source_content_type":"text/x-python","patch_set":42,"id":"9f560f44_3eddff6c","line":86,"updated":"2020-10-09 19:08:34.000000000","message":"role-addition: E203 whitespace before \u0027:\u0027","commit_id":"fbcac94eefa2483d648875d055219f4dca84140a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"eb8503633b137d09b9f4ec5bc4b57ab59a67ef27","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":3,"context_line":"# Copyright 2019 Red Hat, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_d393c0a2","line":3,"updated":"2020-10-14 13:37:27.000000000","message":"nit: 2020","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"3890ce402a4b28011aa367fc2a932ae8aa9c7004","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":3,"context_line":"# Copyright 2019 Red Hat, Inc."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_7ea0b3a6","line":3,"in_reply_to":"7f6b1bfe_d393c0a2","updated":"2020-10-14 14:34:13.000000000","message":"how old is this! ;(","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"eb8503633b137d09b9f4ec5bc4b57ab59a67ef27","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        module.fail_json(msg\u003d\"Failed to run LVM2 lvs command\", err\u003derr)"},{"line_number":54,"context_line":"    if not out:"},{"line_number":55,"context_line":"        return []"},{"line_number":56,"context_line":"    vgs \u003d list(set(out.split()))"},{"line_number":57,"context_line":"    return vgs"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_73d2ac36","line":56,"updated":"2020-10-14 13:37:27.000000000","message":"Ah, so using set() will ensure there are no duplicates in the list(). Nice!","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"43951a6ccc73bbfbf9191da6ff0cdf3ecd40295e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        module.fail_json(msg\u003d\"Failed to run LVM2 lvs command\", err\u003derr)"},{"line_number":54,"context_line":"    if not out:"},{"line_number":55,"context_line":"        return []"},{"line_number":56,"context_line":"    vgs \u003d list(set(out.split()))"},{"line_number":57,"context_line":"    return vgs"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_f7085329","line":56,"in_reply_to":"7f6b1bfe_73d2ac36","updated":"2020-10-15 13:24:43.000000000","message":"is this output list ordered in any particular order? With Set the ordering can be all over the place.","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"628b04bbd277e7130cf6da39178431eda62bf4a2","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        module.fail_json(msg\u003d\"Failed to run LVM2 lvs command\", err\u003derr)"},{"line_number":54,"context_line":"    if not out:"},{"line_number":55,"context_line":"        return []"},{"line_number":56,"context_line":"    vgs \u003d list(set(out.split()))"},{"line_number":57,"context_line":"    return vgs"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_35912354","line":56,"in_reply_to":"7f6b1bfe_f7085329","updated":"2020-10-15 14:58:10.000000000","message":"no we don\u0027t need it sorted in any particular way because this is building the \"whitelist\" only, which goes before the \"blacklist\" and it doesn\u0027t matter in which order the devices are whitelisted","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"43951a6ccc73bbfbf9191da6ff0cdf3ecd40295e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        module.fail_json(msg\u003d\"Failed to run LVM2 vgs command for %s\" % (active_vg), err\u003derr)"},{"line_number":65,"context_line":"    if not out:"},{"line_number":66,"context_line":"        return []"},{"line_number":67,"context_line":"    pvs \u003d list(set(out.split()))"},{"line_number":68,"context_line":"    return pvs"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_170fcf2e","line":67,"range":{"start_line":67,"start_character":10,"end_line":67,"end_character":14},"updated":"2020-10-15 13:24:43.000000000","message":"same question as above.","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"854dcbe9b13e8fd50564c42e13c1ef7b3b769313","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        supports_check_mode\u003dTrue,"},{"line_number":82,"context_line":"    )"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    if module.check_mode:"},{"line_number":85,"context_line":"        module.exit_json(**result)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    active_vgs \u003d get_vgs_with_active_lvs(module)"}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_f7b5f3ef","line":84,"updated":"2020-10-15 13:43:20.000000000","message":"nice!","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"628b04bbd277e7130cf6da39178431eda62bf4a2","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        supports_check_mode\u003dTrue,"},{"line_number":82,"context_line":"    )"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    if module.check_mode:"},{"line_number":85,"context_line":"        module.exit_json(**result)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    active_vgs \u003d get_vgs_with_active_lvs(module)"}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_95c9177a","line":84,"in_reply_to":"7f6b1bfe_f7b5f3ef","updated":"2020-10-15 14:58:10.000000000","message":":D","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"}],"tripleo_ansible/roles/tripleo-lvmfilter/molecule/default/molecule.yml":[{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"467d676de21556871128766d8a022903013dbb08","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3fa7e38b_c43e6c25","updated":"2020-01-17 14:40:40.000000000","message":"boilerplate license header.","commit_id":"859fb10da205027e1976e5f4e819941290686028"}],"tripleo_ansible/roles/tripleo-lvmfilter/tasks/main.yml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"0543dc7e0e10f6e3bf088e9540fc847824506e8a","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: get vgs"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":20,"context_line":"  register: vgs_with_active_lv"},{"line_number":21,"context_line":"- name: set vgs"},{"line_number":22,"context_line":"  set_fact:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_686e9f98","line":19,"updated":"2019-12-17 06:28:08.000000000","message":"What if lvm2 RPM isn\u0027t installed? I\u0027m thinking of the deployed server situation.","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"fbeb48773dc679b6cd39ee1f6908fc692555aa98","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: get vgs"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":20,"context_line":"  register: vgs_with_active_lv"},{"line_number":21,"context_line":"- name: set vgs"},{"line_number":22,"context_line":"  set_fact:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_cbd77022","line":19,"in_reply_to":"3fa7e38b_686e9f98","updated":"2019-12-18 16:50:06.000000000","message":"ack will check/skip if not","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"0543dc7e0e10f6e3bf088e9540fc847824506e8a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    vgs: \"{{ (vgs_with_active_lv.stdout | from_json).report[0].lv }}\""},{"line_number":24,"context_line":"- name: get pvs"},{"line_number":25,"context_line":"  become: true"},{"line_number":26,"context_line":"  command: vgs --noheadings --option pv_name {{ item.vg_name}} --reportformat json"},{"line_number":27,"context_line":"  loop: \"{{ vgs | unique }}\""},{"line_number":28,"context_line":"  register: pvs_in_use"},{"line_number":29,"context_line":"- name: configure lvm filter"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_886bdb84","line":26,"updated":"2019-12-17 06:28:08.000000000","message":"linter says \"{{ item.vg_name}}\" needs space after vg_name","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"fbeb48773dc679b6cd39ee1f6908fc692555aa98","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    vgs: \"{{ (vgs_with_active_lv.stdout | from_json).report[0].lv }}\""},{"line_number":24,"context_line":"- name: get pvs"},{"line_number":25,"context_line":"  become: true"},{"line_number":26,"context_line":"  command: vgs --noheadings --option pv_name {{ item.vg_name}} --reportformat json"},{"line_number":27,"context_line":"  loop: \"{{ vgs | unique }}\""},{"line_number":28,"context_line":"  register: pvs_in_use"},{"line_number":29,"context_line":"- name: configure lvm filter"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_abc79465","line":26,"in_reply_to":"3fa7e38b_886bdb84","updated":"2019-12-18 16:50:06.000000000","message":"ack","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"ea549cf5f31a8770f42f170b562ac1d1ac973152","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  block:"},{"line_number":33,"context_line":"  - name: set pvs"},{"line_number":34,"context_line":"    set_fact:"},{"line_number":35,"context_line":"      pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_048e3926","line":35,"updated":"2019-12-11 22:47:36.000000000","message":"Is it this pvs that\u0027s coming up undefined when the linter runs? \n\nStrange. I have a happy linter in tripleo-validations for the same pattern\n\nhttps://review.opendev.org/#/c/694673/9/roles/ceph/tasks/ceph-pg.yaml@60","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":31106,"name":"Shatadru Bandyopadhyay","email":"shatadru1@gmail.com","username":"shatadru"},"change_message_id":"74135d4eb70be6932ef410b1a1efe089be73102b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_3cc0e52b","line":39,"range":{"start_line":39,"start_character":0,"end_line":39,"end_character":132},"updated":"2019-12-17 12:37:00.000000000","message":"Can this be configurable if someone wants to modify the filter to accommodate other pvs? There might be legit use cases to use lvm in other disks for backup or other purpose.","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"ea549cf5f31a8770f42f170b562ac1d1ac973152","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_04b719da","line":39,"updated":"2019-12-11 22:47:36.000000000","message":"If you add when pvs is defined to this does it make a difference?","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"fbeb48773dc679b6cd39ee1f6908fc692555aa98","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_cb7e901a","line":39,"in_reply_to":"3fa7e38b_04b719da","updated":"2019-12-18 16:50:06.000000000","message":"I\u0027ll try the when condition, thanks","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"fbeb48773dc679b6cd39ee1f6908fc692555aa98","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_4b72a04c","line":39,"range":{"start_line":39,"start_character":0,"end_line":39,"end_character":132},"in_reply_to":"3fa7e38b_3cc0e52b","updated":"2019-12-18 16:50:06.000000000","message":"are you suggesting a tht parameter for operators to provide an additional list of devices to whitelist?","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":31106,"name":"Shatadru Bandyopadhyay","email":"shatadru1@gmail.com","username":"shatadru"},"change_message_id":"174700b11abdd3e52875a1df9283c44e2a7517c9","unresolved":false,"context_lines":[{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"1f493fa4_3987f2b7","line":42,"range":{"start_line":42,"start_character":4,"end_line":42,"end_character":11},"updated":"2020-04-27 14:34:07.000000000","message":"I think we should also push the lvm.conf in initramfs and re-generate it, in CentOS 7/RHE 7, by default initramfs uses a default lvm.conf so there are chances of lvm getting activated in initramfs stage if HBAs are initialised at this point. Reference: https://access.redhat.com/solutions/3213311","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"e7b4598a47efa88d32da2260e11322ff6d4bb305","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: get vgs"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":20,"context_line":"  register: vgs_with_active_lv"},{"line_number":21,"context_line":"- name: set vgs"},{"line_number":22,"context_line":"  set_fact:"},{"line_number":23,"context_line":"    vgs: \"{{ (vgs_with_active_lv.stdout | from_json).report[0].lv }}\""},{"line_number":24,"context_line":"- name: get pvs"},{"line_number":25,"context_line":"  become: true"},{"line_number":26,"context_line":"  command: vgs --noheadings --option pv_name {{ item.vg_name}} --reportformat json"},{"line_number":27,"context_line":"  loop: \"{{ vgs | unique }}\""},{"line_number":28,"context_line":"  register: pvs_in_use"},{"line_number":29,"context_line":"- name: configure lvm filter"},{"line_number":30,"context_line":"  when:"},{"line_number":31,"context_line":"  - pvs_in_use.results"},{"line_number":32,"context_line":"  block:"},{"line_number":33,"context_line":"  - name: set pvs"},{"line_number":34,"context_line":"    set_fact:"},{"line_number":35,"context_line":"      pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_5f3501da","line":42,"range":{"start_line":17,"start_character":2,"end_line":42,"end_character":204},"updated":"2020-01-06 22:39:04.000000000","message":"This all should be in an action plugin rather than trying to do it in ansible. It\u0027s way more efficient and unit testable.  Here\u0027s an example of an action plugin that runs remote commands:\n\nhttps://opendev.org/openstack/tripleo-operator-ansible/src/branch/master/plugins/action/timestamp_file.py#L111-L167\n\nAlternatively you could use a  module to invoke all this on the remote system but I think you can get away with an action plugin instead.","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"0543dc7e0e10f6e3bf088e9540fc847824506e8a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_e8ffefae","line":42,"updated":"2019-12-17 06:28:08.000000000","message":"linter says this line is too long (\u003e160 chars)","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":31106,"name":"Shatadru Bandyopadhyay","email":"shatadru1@gmail.com","username":"shatadru"},"change_message_id":"74135d4eb70be6932ef410b1a1efe089be73102b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_9cfb1947","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":204},"updated":"2019-12-17 12:37:00.000000000","message":"modifying just the `filter` param is not be enough on CentOS 7/RHEL7 as by default lvmetad is enabled (`use_lvmetad\u003d1`) and lvmetad uses the parameter `global_filter` instead of `filter` so when system boots up lvmetad will still scan block devices which belongs to guests unless they are filtered in `global_filter`\n\nWe can add same config in devices/global_filter as well to avoid this.\n\nReference : https://access.redhat.com/solutions/3213311","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"ddf56cb77910ae62c00069819ed29ea614055f67","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: get vgs"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":20,"context_line":"  register: vgs_with_active_lv"},{"line_number":21,"context_line":"- name: set vgs"},{"line_number":22,"context_line":"  set_fact:"},{"line_number":23,"context_line":"    vgs: \"{{ (vgs_with_active_lv.stdout | from_json).report[0].lv }}\""},{"line_number":24,"context_line":"- name: get pvs"},{"line_number":25,"context_line":"  become: true"},{"line_number":26,"context_line":"  command: vgs --noheadings --option pv_name {{ item.vg_name}} --reportformat json"},{"line_number":27,"context_line":"  loop: \"{{ vgs | unique }}\""},{"line_number":28,"context_line":"  register: pvs_in_use"},{"line_number":29,"context_line":"- name: configure lvm filter"},{"line_number":30,"context_line":"  when:"},{"line_number":31,"context_line":"  - pvs_in_use.results"},{"line_number":32,"context_line":"  block:"},{"line_number":33,"context_line":"  - name: set pvs"},{"line_number":34,"context_line":"    set_fact:"},{"line_number":35,"context_line":"      pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_a79c990d","line":42,"range":{"start_line":17,"start_character":2,"end_line":42,"end_character":204},"in_reply_to":"3fa7e38b_07f80d48","updated":"2020-01-16 15:36:44.000000000","message":"The other benefit is unit tests, https://opendev.org/openstack/tripleo-operator-ansible/src/branch/master/tests/plugins/action/test_timestamp_file.py","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"9edcefce37a4c4803de04bc7a491d50eb5b8bf48","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: get vgs"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":20,"context_line":"  register: vgs_with_active_lv"},{"line_number":21,"context_line":"- name: set vgs"},{"line_number":22,"context_line":"  set_fact:"},{"line_number":23,"context_line":"    vgs: \"{{ (vgs_with_active_lv.stdout | from_json).report[0].lv }}\""},{"line_number":24,"context_line":"- name: get pvs"},{"line_number":25,"context_line":"  become: true"},{"line_number":26,"context_line":"  command: vgs --noheadings --option pv_name {{ item.vg_name}} --reportformat json"},{"line_number":27,"context_line":"  loop: \"{{ vgs | unique }}\""},{"line_number":28,"context_line":"  register: pvs_in_use"},{"line_number":29,"context_line":"- name: configure lvm filter"},{"line_number":30,"context_line":"  when:"},{"line_number":31,"context_line":"  - pvs_in_use.results"},{"line_number":32,"context_line":"  block:"},{"line_number":33,"context_line":"  - name: set pvs"},{"line_number":34,"context_line":"    set_fact:"},{"line_number":35,"context_line":"      pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_d3815b4e","line":42,"range":{"start_line":17,"start_character":2,"end_line":42,"end_character":204},"in_reply_to":"3fa7e38b_5f3501da","updated":"2020-01-16 11:32:32.000000000","message":"seems a good idea but it involves rewriting the actual stuff entirely :D\n\nbefore I go there, are we thinking to load those plugins by default for the tripleo-ansible runs? does that happen already?","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"fbeb48773dc679b6cd39ee1f6908fc692555aa98","unresolved":false,"context_lines":[{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_2bb884c5","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":204},"in_reply_to":"3fa7e38b_9cfb1947","updated":"2019-12-18 16:50:06.000000000","message":"nice, thanks for pointing that out","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"050e8f9da7d43a347970b38c39f77163793b244c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: get vgs"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":20,"context_line":"  register: vgs_with_active_lv"},{"line_number":21,"context_line":"- name: set vgs"},{"line_number":22,"context_line":"  set_fact:"},{"line_number":23,"context_line":"    vgs: \"{{ (vgs_with_active_lv.stdout | from_json).report[0].lv }}\""},{"line_number":24,"context_line":"- name: get pvs"},{"line_number":25,"context_line":"  become: true"},{"line_number":26,"context_line":"  command: vgs --noheadings --option pv_name {{ item.vg_name}} --reportformat json"},{"line_number":27,"context_line":"  loop: \"{{ vgs | unique }}\""},{"line_number":28,"context_line":"  register: pvs_in_use"},{"line_number":29,"context_line":"- name: configure lvm filter"},{"line_number":30,"context_line":"  when:"},{"line_number":31,"context_line":"  - pvs_in_use.results"},{"line_number":32,"context_line":"  block:"},{"line_number":33,"context_line":"  - name: set pvs"},{"line_number":34,"context_line":"    set_fact:"},{"line_number":35,"context_line":"      pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_e79e1167","line":42,"range":{"start_line":17,"start_character":2,"end_line":42,"end_character":204},"in_reply_to":"3fa7e38b_c7f9951c","updated":"2020-01-16 15:21:00.000000000","message":"ok great, this role is adding an handler as well but we could easily have that as one of the last steps in the action module\n\nI think I need some guidance on how you want to consume the module ... if I understand correctly you\u0027re thinking to call the module directly from tht without adding the role in tripleo-ansible at all? from one of the service _tasks?","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"01a3868ad570923e687707b77f67ab00954d1434","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: get vgs"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":20,"context_line":"  register: vgs_with_active_lv"},{"line_number":21,"context_line":"- name: set vgs"},{"line_number":22,"context_line":"  set_fact:"},{"line_number":23,"context_line":"    vgs: \"{{ (vgs_with_active_lv.stdout | from_json).report[0].lv }}\""},{"line_number":24,"context_line":"- name: get pvs"},{"line_number":25,"context_line":"  become: true"},{"line_number":26,"context_line":"  command: vgs --noheadings --option pv_name {{ item.vg_name}} --reportformat json"},{"line_number":27,"context_line":"  loop: \"{{ vgs | unique }}\""},{"line_number":28,"context_line":"  register: pvs_in_use"},{"line_number":29,"context_line":"- name: configure lvm filter"},{"line_number":30,"context_line":"  when:"},{"line_number":31,"context_line":"  - pvs_in_use.results"},{"line_number":32,"context_line":"  block:"},{"line_number":33,"context_line":"  - name: set pvs"},{"line_number":34,"context_line":"    set_fact:"},{"line_number":35,"context_line":"      pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_c7f9951c","line":42,"range":{"start_line":17,"start_character":2,"end_line":42,"end_character":204},"in_reply_to":"3fa7e38b_d3815b4e","updated":"2020-01-16 14:57:13.000000000","message":"plugins that live in tripleo-ansible are available by default to THT","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"90f377d6d429aa51ea4b974e647833680e204da1","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"- name: get vgs"},{"line_number":18,"context_line":"  become: true"},{"line_number":19,"context_line":"  command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":20,"context_line":"  register: vgs_with_active_lv"},{"line_number":21,"context_line":"- name: set vgs"},{"line_number":22,"context_line":"  set_fact:"},{"line_number":23,"context_line":"    vgs: \"{{ (vgs_with_active_lv.stdout | from_json).report[0].lv }}\""},{"line_number":24,"context_line":"- name: get pvs"},{"line_number":25,"context_line":"  become: true"},{"line_number":26,"context_line":"  command: vgs --noheadings --option pv_name {{ item.vg_name}} --reportformat json"},{"line_number":27,"context_line":"  loop: \"{{ vgs | unique }}\""},{"line_number":28,"context_line":"  register: pvs_in_use"},{"line_number":29,"context_line":"- name: configure lvm filter"},{"line_number":30,"context_line":"  when:"},{"line_number":31,"context_line":"  - pvs_in_use.results"},{"line_number":32,"context_line":"  block:"},{"line_number":33,"context_line":"  - name: set pvs"},{"line_number":34,"context_line":"    set_fact:"},{"line_number":35,"context_line":"      pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":36,"context_line":"    loop: \"{{ pvs_in_use.results }}\""},{"line_number":37,"context_line":"  - name: build filter"},{"line_number":38,"context_line":"    set_fact:"},{"line_number":39,"context_line":"      filter: \"\\\"{{ pvs | unique | map(attribute\u003d\u0027pv_name\u0027) | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":40,"context_line":"  - name: regenerate lvm config"},{"line_number":41,"context_line":"    become: true"},{"line_number":42,"context_line":"    command: lvmconfig -f /tmp/tripleo-lvmfilter.conf --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated --config devices/filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":43,"context_line":"  - name: copy new lvm.conf in place"},{"line_number":44,"context_line":"    become: true"},{"line_number":45,"context_line":"    copy:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_07f80d48","line":42,"range":{"start_line":17,"start_character":2,"end_line":42,"end_character":204},"in_reply_to":"3fa7e38b_e79e1167","updated":"2020-01-16 15:36:06.000000000","message":"So an action plugin just gets called via THT like any other module. The advantage is that you can parse the data in python and make module calls directly in a singel ansible task. It reduces the requirement to do these set fact stuff as well as being able to encapsulate the entire workflow in a single call.  A very basic example lives over in tripleo-operator-ansible https://opendev.org/openstack/tripleo-operator-ansible/src/branch/master/plugins/action/timestamp_file.py","commit_id":"859fb10da205027e1976e5f4e819941290686028"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"ab934ccb59b552747d83ccc434f3d772c97a1426","unresolved":false,"context_lines":[{"line_number":45,"context_line":"      set_fact:"},{"line_number":46,"context_line":"        ceph_devices: \"{{ ceph_devices | default([]) + item.value }}\""},{"line_number":47,"context_line":"      when:"},{"line_number":48,"context_line":"      - \"item.key in [\u0027devices\u0027, \u0027dedicated_devices\u0027, \u0027bluestore_wal_devices\u0027]\""},{"line_number":49,"context_line":"      with_dict: \"{{ tripleo_ceph_disks }}\""},{"line_number":50,"context_line":"    - name: configure lvm filter"},{"line_number":51,"context_line":"      when:"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"1fa4df85_d07364b0","line":48,"updated":"2020-03-02 14:01:44.000000000","message":"I forgot lvm_volumes","commit_id":"694fc5ee49fa86d04ebe187ae2722de7c7f99e7e"}],"tripleo_ansible/roles/tripleo_lvmfilter/defaults/main.yml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"2934096b2c1489201bc7e01445314571bfb3f999","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# All variables intended for modification should be placed in this file."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# All variables within this role should have a prefix of \"tripleo_tripleo_lvmfilter\""},{"line_number":21,"context_line":"tripleo_tripleo_lvmfilter_debug: false"},{"line_number":22,"context_line":"tripleo_tripleo_lvmfilter_dry_run: false"},{"line_number":23,"context_line":"tripleo_tripleo_lvmfilter_devices_whitelist: []"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_1fbf5faa","line":20,"updated":"2020-03-09 20:32:12.000000000","message":"But what about L24? Perhaps this comment is well meaning, but too rigid (remove it?).","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe3d28f5b8c304010c4b3bfff246587f296ef8d6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"# All variables intended for modification should be placed in this file."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# All variables within this role should have a prefix of \"tripleo_tripleo_lvmfilter\""},{"line_number":21,"context_line":"tripleo_tripleo_lvmfilter_debug: false"},{"line_number":22,"context_line":"tripleo_tripleo_lvmfilter_enabled: false"},{"line_number":23,"context_line":"tripleo_tripleo_lvmfilter_devices_allowlist: []"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_f1d2fefc","line":21,"updated":"2020-09-17 14:28:11.000000000","message":"This variable isn\u0027t used in the latest patch set. If that\u0027s th e intent then it can be deleted here.","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"5ac8713ffedaccb133c2a45aa4cff70fa7f66a57","unresolved":false,"context_lines":[{"line_number":18,"context_line":"# All variables intended for modification should be placed in this file."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# All variables within this role should have a prefix of \"tripleo_tripleo_lvmfilter\""},{"line_number":21,"context_line":"tripleo_tripleo_lvmfilter_debug: false"},{"line_number":22,"context_line":"tripleo_tripleo_lvmfilter_enabled: false"},{"line_number":23,"context_line":"tripleo_tripleo_lvmfilter_devices_allowlist: []"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_3760e6a4","line":21,"in_reply_to":"9f560f44_f1d2fefc","updated":"2020-09-17 15:25:36.000000000","message":"I don\u0027t want to expose it in THT though so I guess I\u0027ll remove it","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"d1f3d486607cdf5088bcc134409605711b9ac754","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# All variables within this role should have a prefix of \"tripleo_tripleo_lvmfilter\""},{"line_number":21,"context_line":"tripleo_tripleo_lvmfilter_enabled: false"},{"line_number":22,"context_line":"tripleo_tripleo_lvmfilter_devices_allowlist: []"},{"line_number":23,"context_line":"tripleo_tripleo_lvmfilter_devices_denylist: []"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"9f560f44_0b17cdf0","line":23,"updated":"2020-09-28 16:40:36.000000000","message":"Earlier patch sets appended \"r|.*|\" to the global filter. Should this be included here instead of the empty list \"[]\"?","commit_id":"cb4bd676940673cdbd4fe60a6fd6a33948792441"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"489e9ea3353b3f943c18e1f2434f7b6de49d4eb1","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# All variables within this role should have a prefix of \"tripleo_tripleo_lvmfilter\""},{"line_number":21,"context_line":"tripleo_tripleo_lvmfilter_enabled: false"},{"line_number":22,"context_line":"tripleo_tripleo_lvmfilter_devices_allowlist: []"},{"line_number":23,"context_line":"tripleo_tripleo_lvmfilter_devices_denylist: []"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"9f560f44_ab8ce139","line":23,"in_reply_to":"9f560f44_0b17cdf0","updated":"2020-09-28 16:47:06.000000000","message":"I see the THT patch supplies \".*\" as the default deny list, so perhaps this is OK.","commit_id":"cb4bd676940673cdbd4fe60a6fd6a33948792441"}],"tripleo_ansible/roles/tripleo_lvmfilter/files/.gitkeep":[{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"68058c2e7b04cfdff132dbd95329608ac14fe514","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"1fa4df85_7a0f6f87","updated":"2020-03-10 15:30:14.000000000","message":"this file and folder can be removed too","commit_id":"97d2f4809168b3d9395156123b41ef8c3d57d879"}],"tripleo_ansible/roles/tripleo_lvmfilter/meta/main.yml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"2934096b2c1489201bc7e01445314571bfb3f999","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        - 28"},{"line_number":34,"context_line":"    - name: CentOS"},{"line_number":35,"context_line":"      versions:"},{"line_number":36,"context_line":"        - 7"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"  galaxy_tags:"},{"line_number":39,"context_line":"    - tripleo"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_df30e758","line":36,"updated":"2020-03-09 20:32:12.000000000","message":"I don\u0027t understand the galaxy_info details, but the comment starting at L25 makes me wonder if L36 means el7 is supported but el8 is *not*. Maybe no change is warranted, in which case my comment can be ignored.","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"eb8503633b137d09b9f4ec5bc4b57ab59a67ef27","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  # To view available platforms and versions (or releases), visit:"},{"line_number":28,"context_line":"  # https://galaxy.ansible.com/api/v1/platforms/"},{"line_number":29,"context_line":"  #"},{"line_number":30,"context_line":"  platforms:"},{"line_number":31,"context_line":"    - name: CentOS"},{"line_number":32,"context_line":"      versions:"},{"line_number":33,"context_line":"        - 7"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"7f6b1bfe_1351b8d9","line":30,"updated":"2020-10-14 13:37:27.000000000","message":"See https://review.opendev.org/#/c/749117/14/tripleo_ansible/roles/tripleo_multipathd/meta/main.yml@36\n\nI\u0027m guessing a global cleanup is in order to update a lot of modules for ubi8.","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"43951a6ccc73bbfbf9191da6ff0cdf3ecd40295e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  # To view available platforms and versions (or releases), visit:"},{"line_number":28,"context_line":"  # https://galaxy.ansible.com/api/v1/platforms/"},{"line_number":29,"context_line":"  #"},{"line_number":30,"context_line":"  platforms:"},{"line_number":31,"context_line":"    - name: CentOS"},{"line_number":32,"context_line":"      versions:"},{"line_number":33,"context_line":"        - 7"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"7f6b1bfe_57194777","line":30,"in_reply_to":"7f6b1bfe_1351b8d9","updated":"2020-10-15 13:24:43.000000000","message":"+1 we should be using the UBI8 image, nothing we need to address here.","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"}],"tripleo_ansible/roles/tripleo_lvmfilter/molecule/default/Dockerfile":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe3d28f5b8c304010c4b3bfff246587f296ef8d6","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"{% if item.registry is defined %}"},{"line_number":19,"context_line":"FROM {{ item.registry.url }}/{{ item.image }}"},{"line_number":20,"context_line":"{% else %}"}],"source_content_type":"text/x-dockerfile","patch_set":34,"id":"9f560f44_1174d2fd","line":17,"updated":"2020-09-17 14:28:11.000000000","message":"When developing unit tests for my own patch [1], I discovered it was happy using a default Dockerfile. You may find you don\u0027t need one (I don\u0027t see anything special with yours), in which case it could be dropped from this patch.\n\nBTW, see [2] for technique for adding packages, which can be used to add lvm2.\n\n[1] https://review.opendev.org/749117\n[2] https://review.opendev.org/#/c/749117/7/tripleo_ansible/roles/tripleo_multipathd/molecule/default/prepare.yml","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"5ac8713ffedaccb133c2a45aa4cff70fa7f66a57","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"{% if item.registry is defined %}"},{"line_number":19,"context_line":"FROM {{ item.registry.url }}/{{ item.image }}"},{"line_number":20,"context_line":"{% else %}"}],"source_content_type":"text/x-dockerfile","patch_set":34,"id":"9f560f44_775a5ef2","line":17,"in_reply_to":"9f560f44_1174d2fd","updated":"2020-09-17 15:25:36.000000000","message":"ack the molecule tests seem to be skipping the tasks because lvm2 is not installed","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"}],"tripleo_ansible/roles/tripleo_lvmfilter/molecule/default/molecule.yml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe3d28f5b8c304010c4b3bfff246587f296ef8d6","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    - destroy"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"verifier:"},{"line_number":55,"context_line":"  name: testinfra"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_d1525a68","line":55,"updated":"2020-09-17 14:28:11.000000000","message":"Just noting that I switched mine to \u0027ansible\u0027 and added tests in a verify.yml\n\nhttps://review.opendev.org/749117","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"d1f3d486607cdf5088bcc134409605711b9ac754","unresolved":false,"context_lines":[{"line_number":5,"context_line":"log: true"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"platforms:"},{"line_number":8,"context_line":"  - name: centos7"},{"line_number":9,"context_line":"    hostname: centos7"},{"line_number":10,"context_line":"    image: centos:7"},{"line_number":11,"context_line":"    dockerfile: Dockerfile"},{"line_number":12,"context_line":"    pkg_extras: python-setuptools"},{"line_number":13,"context_line":"    volumes:"},{"line_number":14,"context_line":"      - /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro"},{"line_number":15,"context_line":"    easy_install:"},{"line_number":16,"context_line":"      - pip"},{"line_number":17,"context_line":"    environment: \u0026env"},{"line_number":18,"context_line":"      http_proxy: \"{{ lookup(\u0027env\u0027, \u0027http_proxy\u0027) }}\""},{"line_number":19,"context_line":"      https_proxy: \"{{ lookup(\u0027env\u0027, \u0027https_proxy\u0027) }}\""},{"line_number":20,"context_line":"    ulimits: \u0026ulimit"},{"line_number":21,"context_line":"      - host"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"  - name: centos8"},{"line_number":24,"context_line":"    hostname: centos8"},{"line_number":25,"context_line":"    image: centos:8"},{"line_number":26,"context_line":"    dockerfile: Dockerfile"},{"line_number":27,"context_line":"    pkg_extras: python*-setuptools"},{"line_number":28,"context_line":"    volumes:"},{"line_number":29,"context_line":"      - /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro"},{"line_number":30,"context_line":"    environment:"},{"line_number":31,"context_line":"      \u003c\u003c: *env"},{"line_number":32,"context_line":"    ulimits: *ulimit"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"provisioner:"},{"line_number":35,"context_line":"  name: ansible"},{"line_number":36,"context_line":"  inventory:"},{"line_number":37,"context_line":"    hosts:"},{"line_number":38,"context_line":"      all:"},{"line_number":39,"context_line":"        vars:"},{"line_number":40,"context_line":"          ansible_user: root"},{"line_number":41,"context_line":"  log: true"},{"line_number":42,"context_line":"  env:"},{"line_number":43,"context_line":"    ANSIBLE_STDOUT_CALLBACK: yaml"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"scenario:"},{"line_number":46,"context_line":"  test_sequence:"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"9f560f44_e051d832","line":43,"range":{"start_line":8,"start_character":0,"end_line":43,"end_character":33},"updated":"2020-09-28 16:40:36.000000000","message":"See recent comments in my patch https://review.opendev.org/749117. I was asked to use the new uib8 platform instead of centos7|8.","commit_id":"cb4bd676940673cdbd4fe60a6fd6a33948792441"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"296e7c7319fdd95b7c6edb6843c788d4f4d61e47","unresolved":false,"context_lines":[{"line_number":5,"context_line":"log: true"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"platforms:"},{"line_number":8,"context_line":"  - name: centos7"},{"line_number":9,"context_line":"    hostname: centos7"},{"line_number":10,"context_line":"    image: centos:7"},{"line_number":11,"context_line":"    dockerfile: Dockerfile"},{"line_number":12,"context_line":"    pkg_extras: python-setuptools"},{"line_number":13,"context_line":"    volumes:"},{"line_number":14,"context_line":"      - /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro"},{"line_number":15,"context_line":"    easy_install:"},{"line_number":16,"context_line":"      - pip"},{"line_number":17,"context_line":"    environment: \u0026env"},{"line_number":18,"context_line":"      http_proxy: \"{{ lookup(\u0027env\u0027, \u0027http_proxy\u0027) }}\""},{"line_number":19,"context_line":"      https_proxy: \"{{ lookup(\u0027env\u0027, \u0027https_proxy\u0027) }}\""},{"line_number":20,"context_line":"    ulimits: \u0026ulimit"},{"line_number":21,"context_line":"      - host"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"  - name: centos8"},{"line_number":24,"context_line":"    hostname: centos8"},{"line_number":25,"context_line":"    image: centos:8"},{"line_number":26,"context_line":"    dockerfile: Dockerfile"},{"line_number":27,"context_line":"    pkg_extras: python*-setuptools"},{"line_number":28,"context_line":"    volumes:"},{"line_number":29,"context_line":"      - /etc/ci/mirror_info.sh:/etc/ci/mirror_info.sh:ro"},{"line_number":30,"context_line":"    environment:"},{"line_number":31,"context_line":"      \u003c\u003c: *env"},{"line_number":32,"context_line":"    ulimits: *ulimit"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"provisioner:"},{"line_number":35,"context_line":"  name: ansible"},{"line_number":36,"context_line":"  inventory:"},{"line_number":37,"context_line":"    hosts:"},{"line_number":38,"context_line":"      all:"},{"line_number":39,"context_line":"        vars:"},{"line_number":40,"context_line":"          ansible_user: root"},{"line_number":41,"context_line":"  log: true"},{"line_number":42,"context_line":"  env:"},{"line_number":43,"context_line":"    ANSIBLE_STDOUT_CALLBACK: yaml"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"scenario:"},{"line_number":46,"context_line":"  test_sequence:"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"9f560f44_fce7a1e2","line":43,"range":{"start_line":8,"start_character":0,"end_line":43,"end_character":33},"in_reply_to":"9f560f44_e051d832","updated":"2020-09-30 09:47:04.000000000","message":"ack thanks for pointing it out here as well, will do","commit_id":"cb4bd676940673cdbd4fe60a6fd6a33948792441"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"d1f3d486607cdf5088bcc134409605711b9ac754","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    - destroy"},{"line_number":48,"context_line":"    - create"},{"line_number":49,"context_line":"    - prepare"},{"line_number":50,"context_line":"    - converge"},{"line_number":51,"context_line":"    - verify"},{"line_number":52,"context_line":"    - destroy"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":35,"id":"9f560f44_a0a9a026","line":50,"updated":"2020-09-28 16:40:36.000000000","message":"Add \"- check\" test, see https://review.opendev.org/#/c/749117/7/tripleo_ansible/roles/tripleo_multipathd/molecule/custom_config/molecule.yml@50","commit_id":"cb4bd676940673cdbd4fe60a6fd6a33948792441"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"296e7c7319fdd95b7c6edb6843c788d4f4d61e47","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    - destroy"},{"line_number":48,"context_line":"    - create"},{"line_number":49,"context_line":"    - prepare"},{"line_number":50,"context_line":"    - converge"},{"line_number":51,"context_line":"    - verify"},{"line_number":52,"context_line":"    - destroy"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":35,"id":"9f560f44_3cc91951","line":50,"in_reply_to":"9f560f44_a0a9a026","updated":"2020-09-30 09:47:04.000000000","message":"will do","commit_id":"cb4bd676940673cdbd4fe60a6fd6a33948792441"}],"tripleo_ansible/roles/tripleo_lvmfilter/molecule/default/prepare.yml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe3d28f5b8c304010c4b3bfff246587f296ef8d6","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"- name: Prepare"},{"line_number":19,"context_line":"  hosts: all"},{"line_number":20,"context_line":"  roles:"},{"line_number":21,"context_line":"    - role: test_deps"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_91e742ad","line":20,"updated":"2020-09-17 14:28:11.000000000","message":"As I noted before, see [1] if you need to add lvm2 to the container that runs the test.\n\nhttps://review.opendev.org/#/c/749117/7/tripleo_ansible/roles/tripleo_multipathd/molecule/default/prepare.yml","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"}],"tripleo_ansible/roles/tripleo_lvmfilter/molecule/default/verify.yml":[{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"bf7a146fe6b9a851fe5090847b65de3baa01ff20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"1fa4df85_3a3c972d","updated":"2020-03-10 15:28:54.000000000","message":"this file can be removed if its not used.","commit_id":"97d2f4809168b3d9395156123b41ef8c3d57d879"}],"tripleo_ansible/roles/tripleo_lvmfilter/tasks/main.yml":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"2934096b2c1489201bc7e01445314571bfb3f999","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# \"tripleo_lvmfilter\" will search for and load any operating system variable file"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# found within the \"vars/\" path. If no OS files are found the task will skip."},{"line_number":21,"context_line":"- name: Gather variables for each operating system"},{"line_number":22,"context_line":"  include_vars: \"{{ item }}\""}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_ff4da3c3","line":19,"updated":"2020-03-09 20:32:12.000000000","message":"nit: spurious blank line?","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"42ab1396c1e9b1fd93b548ad3b84f1b3998fe3c9","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      block:"},{"line_number":85,"context_line":"        - name: build devices list"},{"line_number":86,"context_line":"          set_fact:"},{"line_number":87,"context_line":"            allowed_devices: \"{{ (pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":88,"context_line":"                             + (ceph_devices | default([]))"},{"line_number":89,"context_line":"                             + (ceph_lvm_devices | default([]))"},{"line_number":90,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_103d208e","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":27},"updated":"2020-03-06 22:16:38.000000000","message":"Did you consider diffing this list against devices which are on the running system (e.g. output of lsblk) and keeping only the intersection (and then adding those in tripleo_tripleo_lvmfilter_devices_whitelist)?\n\nI suggest this because I tested this in my env which has a standard compute and a standard ceph-storage node. The ceph node has /dev/sdb which is used as an OSD. The compute node does not have /dev/sdb. I put nothing in the whitelist. The compute node had the following in its lvm.conf\n\nglobal_filter\u003d[\"a|/dev/sdb|\",\"r|.*|\"]\n\nSo even though /dev/sdb didn\u0027t exist on my compute node, it ended up in the list. This doesn\u0027t break anything but seems an unnecessary side effect.\n\nMaybe you encountered this type of thing in your testing too, but determined you needed to keep it for some reason?","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"2934096b2c1489201bc7e01445314571bfb3f999","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      block:"},{"line_number":85,"context_line":"        - name: build devices list"},{"line_number":86,"context_line":"          set_fact:"},{"line_number":87,"context_line":"            allowed_devices: \"{{ (pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":88,"context_line":"                             + (ceph_devices | default([]))"},{"line_number":89,"context_line":"                             + (ceph_lvm_devices | default([]))"},{"line_number":90,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_b90f4386","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":27},"in_reply_to":"1fa4df85_103d208e","updated":"2020-03-09 20:32:12.000000000","message":"I agree that it doesn\u0027t feel right to include ceph devices in the filter applied to non-ceph nodes. It may be benign when the device doesn\u0027t exist (/dev/sdb in John\u0027s example), but what happens if it ~does~ exist, and it\u0027s associated with a vm that we *do* want to filter.","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"c8984433bb5b2d14e5c424506750dbd8114bbf60","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      block:"},{"line_number":85,"context_line":"        - name: build devices list"},{"line_number":86,"context_line":"          set_fact:"},{"line_number":87,"context_line":"            allowed_devices: \"{{ (pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":88,"context_line":"                             + (ceph_devices | default([]))"},{"line_number":89,"context_line":"                             + (ceph_lvm_devices | default([]))"},{"line_number":90,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_db231ca6","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":27},"in_reply_to":"1fa4df85_103d208e","updated":"2020-03-09 13:18:37.000000000","message":"thanks for the review!\n\nwe discussed this scenario in the tht submission and I ended up making the whitelist a role parameter [1] vs adding logic in the ansible role because I didn\u0027t want ansible to \"magically\" filter out devices which aren\u0027t found on the node\n\nI am waiting for Alan to review the submission as well for any additional feedback, if you guys have strong opinions about this I can add the filter in the ansible tasks too\n\n1. https://review.opendev.org/#/c/697997/14/deployment/iscsid/iscsid-container-puppet.yaml","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"5316a7e997a6d64b590991bc9d6e9d0f42300643","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      block:"},{"line_number":85,"context_line":"        - name: build devices list"},{"line_number":86,"context_line":"          set_fact:"},{"line_number":87,"context_line":"            allowed_devices: \"{{ (pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":88,"context_line":"                             + (ceph_devices | default([]))"},{"line_number":89,"context_line":"                             + (ceph_lvm_devices | default([]))"},{"line_number":90,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_33edb4b6","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":27},"in_reply_to":"1fa4df85_9f710fab","updated":"2020-03-09 18:03:24.000000000","message":"I didn\u0027t get you meant for the computed values, will do","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"2934096b2c1489201bc7e01445314571bfb3f999","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      block:"},{"line_number":85,"context_line":"        - name: build devices list"},{"line_number":86,"context_line":"          set_fact:"},{"line_number":87,"context_line":"            allowed_devices: \"{{ (pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":88,"context_line":"                             + (ceph_devices | default([]))"},{"line_number":89,"context_line":"                             + (ceph_lvm_devices | default([]))"},{"line_number":90,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_197537fa","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":27},"in_reply_to":"1fa4df85_9f710fab","updated":"2020-03-09 20:32:12.000000000","message":"I\u0027m OK with a user-controlled whitelist. It only adds complexity when the user does something with it, and it might be real important in unexpected situations where the filter blacklists something important.","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"73b7ae233d278eb7f090d4fecdb264f4cbf2aa4b","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      block:"},{"line_number":85,"context_line":"        - name: build devices list"},{"line_number":86,"context_line":"          set_fact:"},{"line_number":87,"context_line":"            allowed_devices: \"{{ (pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":88,"context_line":"                             + (ceph_devices | default([]))"},{"line_number":89,"context_line":"                             + (ceph_lvm_devices | default([]))"},{"line_number":90,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_9f710fab","line":87,"range":{"start_line":87,"start_character":12,"end_line":87,"end_character":27},"in_reply_to":"1fa4df85_db231ca6","updated":"2020-03-09 14:07:46.000000000","message":"The white list is a nice feature which we should keep but my thought was that the less the filter is applied the better. I assume we only want to modify the lvm.conf if we have to since any modification is an opportunity for bugs.\n\nLet\u0027s see what Alan thinks.","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"4a0bfbe47b217e76e9de5f6bfd6961f5f22b120b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            allowed_devices: \"{{ ((pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":88,"context_line":"                             + (ceph_devices | default([]))"},{"line_number":89,"context_line":"                             + (ceph_lvm_devices | default([]))"},{"line_number":90,"context_line":"                             | intersect(ansible_devices.keys()))"},{"line_number":91,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"},{"line_number":92,"context_line":"                             | unique }}\""},{"line_number":93,"context_line":"        - name: build lvm2 filter"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"1fa4df85_b3d204d0","line":90,"updated":"2020-03-09 18:16:36.000000000","message":"Yeah, that\u0027s what I had in mind.\n\nLet\u0027s see how CI likes it.","commit_id":"dc6bbb6229ff87398e81ff770ccb2fa08cc7ed92"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"a8fba0eaf9b3ef3c6cd170628ffd148047d22616","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                             | intersect(ansible_devices.keys())"},{"line_number":91,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"},{"line_number":92,"context_line":"                             | unique }}\""},{"line_number":93,"context_line":"        - name: build lvm2 filter"},{"line_number":94,"context_line":"          set_fact:"},{"line_number":95,"context_line":"            filter: \"\\\"{{ allowed_devices | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":96,"context_line":"        - name: regenerate lvm config"},{"line_number":97,"context_line":"          become: true"},{"line_number":98,"context_line":"          command: \u003e"},{"line_number":99,"context_line":"            lvmconfig -f /tmp/tripleo_lvmfilter.conf"},{"line_number":100,"context_line":"            --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated"},{"line_number":101,"context_line":"            --config devices/global_filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":102,"context_line":"        - name: copy new lvm.conf in place"},{"line_number":103,"context_line":"          become: true"},{"line_number":104,"context_line":"          copy:"},{"line_number":105,"context_line":"            remote_src: true"},{"line_number":106,"context_line":"            src: /tmp/tripleo_lvmfilter.conf"},{"line_number":107,"context_line":"            dest: /etc/lvm/lvm.conf"},{"line_number":108,"context_line":"            owner: root"},{"line_number":109,"context_line":"            group: root"},{"line_number":110,"context_line":"            mode: \u00270644\u0027"},{"line_number":111,"context_line":"            backup: true"},{"line_number":112,"context_line":"          when:"},{"line_number":113,"context_line":"            - not tripleo_tripleo_lvmfilter_dry_run"},{"line_number":114,"context_line":"          notify:"},{"line_number":115,"context_line":"            - Refresh LVM caches"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"1fa4df85_0e588f53","line":115,"range":{"start_line":93,"start_character":0,"end_line":115,"end_character":32},"updated":"2020-03-09 19:41:19.000000000","message":"I think we should add a when block to lines 93 to 115 so that these tasks only run when allowed_devices is not empty.\n\nMy testing of this patch after the intersect was added indicates that the intersect worked the way we had intended (reduce the list to nothing) but it still resulted in my system attempting to add an empty filter like this:\n\n        global_filter\u003d[\"\",\"r|.*|\"]\n\nThis made the handler fail and thus the deployment failed. This doesn\u0027t mean we should remove the intersect (it\u0027s working). The intersect exposed a new bug which is that if for whatever reason the allowed_list is empty, then we shouldn\u0027t go forward with installing a filter.\n\n\nRUNNING HANDLER [tripleo_lvmfilter : Refresh LVM caches] ************************************************************************************************************************************\nfatal: [overcloud-controller-0]: FAILED! \u003d\u003e {\"changed\": true, \"cmd\": [\"vgscan\"], \"delta\": \"0:00:00.007333\", \"end\": \"2020-03-09 19:21:18.428937\", \"msg\": \"non-zero return code\", \"rc\": 5, \"start\": \"2020-03-09 19:21:18.421604\", \"stderr\": \"  Configuration setting \\\"devices/global_filter\\\" invalid. It cannot be set to an empty value.\\n  Pattern must begin with \u0027a\u0027 or \u0027r\u0027.\\n  Invalid filter pattern \\\"\\\".\\n  Failed to create global regex device filter\", \"stderr_lines\": [\"  Configuration setting \\\"devices/global_filter\\\" invalid. It cannot be set to an empty value.\", \"  Pattern must begin with \u0027a\u0027 or \u0027r\u0027.\", \"  Invalid filter pattern \\\"\\\".\", \"  Failed to create global regex device filter\"], \"stdout\": \"\", \"stdout_lines\": []}\nfatal: [overcloud-novacompute-0]: FAILED! \u003d\u003e {\"changed\": true, \"cmd\": [\"vgscan\"], \"delta\": \"0:00:00.010471\", \"end\": \"2020-03-09 19:21:18.710709\", \"msg\": \"non-zero return code\", \"rc\": 5, \"start\": \"2020-03-09 19:21:18.700238\", \"stderr\": \"  Configuration setting \\\"devices/global_filter\\\" invalid. It cannot be set to an empty value.\\n  Pattern must begin with \u0027a\u0027 or \u0027r\u0027.\\n  Invalid filter pattern \\\"\\\".\\n  Failed to create global regex device filter\", \"stderr_lines\": [\"  Configuration setting \\\"devices/global_filter\\\" invalid. It cannot be set to an empty value.\", \"  Pattern must begin with \u0027a\u0027 or \u0027r\u0027.\", \"  Invalid filter pattern \\\"\\\".\", \"  Failed to create global regex device filter\"], \"stdout\": \"\", \"stdout_lines\": []}\n\nNO MORE HOSTS LEFT **************************************************************************************************************************************************************************\n\nPLAY RECAP **********************************************************************************************************************************************************************************\novercloud-cephstorage-0    : ok\u003d110  changed\u003d23   unreachable\u003d0    failed\u003d0    skipped\u003d59   rescued\u003d0    ignored\u003d0   \novercloud-controller-0     : ok\u003d181  changed\u003d35   unreachable\u003d0    failed\u003d1    skipped\u003d94   rescued\u003d0    ignored\u003d1   \novercloud-novacompute-0    : ok\u003d152  changed\u003d40   unreachable\u003d0    failed\u003d1    skipped\u003d89   rescued\u003d0    ignored\u003d1   \nundercloud                 : ok\u003d50   changed\u003d17   unreachable\u003d0    failed\u003d0    skipped\u003d46   rescued\u003d0    ignored\u003d0","commit_id":"1861f49ea44c24085a66fa209c4bf0f6ed14efe9"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"2934096b2c1489201bc7e01445314571bfb3f999","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                             | intersect(ansible_devices.keys())"},{"line_number":91,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"},{"line_number":92,"context_line":"                             | unique }}\""},{"line_number":93,"context_line":"        - name: build lvm2 filter"},{"line_number":94,"context_line":"          set_fact:"},{"line_number":95,"context_line":"            filter: \"\\\"{{ allowed_devices | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":96,"context_line":"        - name: regenerate lvm config"},{"line_number":97,"context_line":"          become: true"},{"line_number":98,"context_line":"          command: \u003e"},{"line_number":99,"context_line":"            lvmconfig -f /tmp/tripleo_lvmfilter.conf"},{"line_number":100,"context_line":"            --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated"},{"line_number":101,"context_line":"            --config devices/global_filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":102,"context_line":"        - name: copy new lvm.conf in place"},{"line_number":103,"context_line":"          become: true"},{"line_number":104,"context_line":"          copy:"},{"line_number":105,"context_line":"            remote_src: true"},{"line_number":106,"context_line":"            src: /tmp/tripleo_lvmfilter.conf"},{"line_number":107,"context_line":"            dest: /etc/lvm/lvm.conf"},{"line_number":108,"context_line":"            owner: root"},{"line_number":109,"context_line":"            group: root"},{"line_number":110,"context_line":"            mode: \u00270644\u0027"},{"line_number":111,"context_line":"            backup: true"},{"line_number":112,"context_line":"          when:"},{"line_number":113,"context_line":"            - not tripleo_tripleo_lvmfilter_dry_run"},{"line_number":114,"context_line":"          notify:"},{"line_number":115,"context_line":"            - Refresh LVM caches"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"1fa4df85_59fc0f6f","line":115,"range":{"start_line":93,"start_character":0,"end_line":115,"end_character":32},"in_reply_to":"1fa4df85_0e588f53","updated":"2020-03-09 20:32:12.000000000","message":"Looks like the conditional at L83 didn\u0027t work, but I like your idea of triggering off non-empty allowed_devices. Should be able to reorder things to replace the one at L83 with another that uses allowed_devices.","commit_id":"1861f49ea44c24085a66fa209c4bf0f6ed14efe9"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"e392b547f814dd6b30fe88062ce1e2cb1d85b648","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                             | intersect(ansible_devices.keys())"},{"line_number":91,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"},{"line_number":92,"context_line":"                             | unique }}\""},{"line_number":93,"context_line":"        - name: build lvm2 filter"},{"line_number":94,"context_line":"          set_fact:"},{"line_number":95,"context_line":"            filter: \"\\\"{{ allowed_devices | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":96,"context_line":"        - name: regenerate lvm config"},{"line_number":97,"context_line":"          become: true"},{"line_number":98,"context_line":"          command: \u003e"},{"line_number":99,"context_line":"            lvmconfig -f /tmp/tripleo_lvmfilter.conf"},{"line_number":100,"context_line":"            --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated"},{"line_number":101,"context_line":"            --config devices/global_filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":102,"context_line":"        - name: copy new lvm.conf in place"},{"line_number":103,"context_line":"          become: true"},{"line_number":104,"context_line":"          copy:"},{"line_number":105,"context_line":"            remote_src: true"},{"line_number":106,"context_line":"            src: /tmp/tripleo_lvmfilter.conf"},{"line_number":107,"context_line":"            dest: /etc/lvm/lvm.conf"},{"line_number":108,"context_line":"            owner: root"},{"line_number":109,"context_line":"            group: root"},{"line_number":110,"context_line":"            mode: \u00270644\u0027"},{"line_number":111,"context_line":"            backup: true"},{"line_number":112,"context_line":"          when:"},{"line_number":113,"context_line":"            - not tripleo_tripleo_lvmfilter_dry_run"},{"line_number":114,"context_line":"          notify:"},{"line_number":115,"context_line":"            - Refresh LVM caches"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"1fa4df85_740f8887","line":115,"range":{"start_line":93,"start_character":0,"end_line":115,"end_character":32},"in_reply_to":"1fa4df85_546cd6cc","updated":"2020-03-10 13:49:31.000000000","message":"thanks guys for testing edge cases and everything, I\u0027ll move \"build devices list\" out of the block and use the additional when for the block","commit_id":"1861f49ea44c24085a66fa209c4bf0f6ed14efe9"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"1636d4ccddb0caf29c2be7c2113203f57b741808","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                             | intersect(ansible_devices.keys())"},{"line_number":91,"context_line":"                             + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"},{"line_number":92,"context_line":"                             | unique }}\""},{"line_number":93,"context_line":"        - name: build lvm2 filter"},{"line_number":94,"context_line":"          set_fact:"},{"line_number":95,"context_line":"            filter: \"\\\"{{ allowed_devices | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":96,"context_line":"        - name: regenerate lvm config"},{"line_number":97,"context_line":"          become: true"},{"line_number":98,"context_line":"          command: \u003e"},{"line_number":99,"context_line":"            lvmconfig -f /tmp/tripleo_lvmfilter.conf"},{"line_number":100,"context_line":"            --mergedconfig --withgeneralpreamble --withspaces --withsummary --withcomments --ignorelocal --showdeprecated"},{"line_number":101,"context_line":"            --config devices/global_filter\u003d\u0027[{{ filter }}]\u0027"},{"line_number":102,"context_line":"        - name: copy new lvm.conf in place"},{"line_number":103,"context_line":"          become: true"},{"line_number":104,"context_line":"          copy:"},{"line_number":105,"context_line":"            remote_src: true"},{"line_number":106,"context_line":"            src: /tmp/tripleo_lvmfilter.conf"},{"line_number":107,"context_line":"            dest: /etc/lvm/lvm.conf"},{"line_number":108,"context_line":"            owner: root"},{"line_number":109,"context_line":"            group: root"},{"line_number":110,"context_line":"            mode: \u00270644\u0027"},{"line_number":111,"context_line":"            backup: true"},{"line_number":112,"context_line":"          when:"},{"line_number":113,"context_line":"            - not tripleo_tripleo_lvmfilter_dry_run"},{"line_number":114,"context_line":"          notify:"},{"line_number":115,"context_line":"            - Refresh LVM caches"}],"source_content_type":"text/x-yaml","patch_set":27,"id":"1fa4df85_546cd6cc","line":115,"range":{"start_line":93,"start_character":0,"end_line":115,"end_character":32},"in_reply_to":"1fa4df85_59fc0f6f","updated":"2020-03-09 20:53:47.000000000","message":"worked for me with this\n\nhttp://paste.openstack.org/show/790496/","commit_id":"1861f49ea44c24085a66fa209c4bf0f6ed14efe9"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"ec4a78e9dc74322e3ae7c2c9d94da3f93000b236","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                         | intersect(ansible_devices.keys())"},{"line_number":87,"context_line":"                         + (tripleo_tripleo_lvmfilter_devices_whitelist | default([]))"},{"line_number":88,"context_line":"                         | unique }}\""},{"line_number":89,"context_line":"      when:"},{"line_number":90,"context_line":"        - (pvs is defined) or (ceph_devices is defined) or (ceph_lvm_devices is defined)"},{"line_number":91,"context_line":"    - name: configure lvm filter"},{"line_number":92,"context_line":"      when:"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"1fa4df85_546b6cef","line":89,"updated":"2020-03-10 13:56:44.000000000","message":"sounds like the when: here is unneeded at this point, just logging more elegantly","commit_id":"57e93700960771745800fa2ffe078ca36a13de57"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"7956f2d7e9e3b952cf82fa9028e00ff8846b2ae8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        ceph_devices: \"{{ ceph_devices | default([]) + item.value }}\""},{"line_number":61,"context_line":"      when:"},{"line_number":62,"context_line":"        - \"item.key in [\u0027devices\u0027, \u0027dedicated_devices\u0027, \u0027bluestore_wal_devices\u0027]\""},{"line_number":63,"context_line":"      with_dict: \"{{ tripleo_ceph_ansible_disks_config | default({}) }}\""},{"line_number":64,"context_line":"    - name: set ceph_lvm_devices"},{"line_number":65,"context_line":"      when: \"\u0027lvm_volumes\u0027 in (tripleo_ceph_ansible_disks_config | default({})).keys()\""},{"line_number":66,"context_line":"      block:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"1fa4df85_04c93957","line":63,"updated":"2020-03-11 04:44:09.000000000","message":"I\u0027m still curious if there\u0027s a chance of ceph drives (say, /dev/sdb) being whitelisted on non-ceph nodes. The device might not be physically present, but could it exist as a result of it being associated with a vm\u0027s device (which we\u0027re trying to avoid)?\n\nJust to throw something in the mix, see [1]. Would it help to exclude devices with \u0027openstack\u0027 in the name?\n\n[1] https://bugzilla.redhat.com/show_bug.cgi?id\u003d1261083#c14","commit_id":"47936dac8fbf173cb138bbbbeb4d7cc76382f1d4"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"1f8239eee0a5eac194ef59e1599eae1e9d208a4e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        ceph_devices: \"{{ ceph_devices | default([]) + item.value }}\""},{"line_number":61,"context_line":"      when:"},{"line_number":62,"context_line":"        - \"item.key in [\u0027devices\u0027, \u0027dedicated_devices\u0027, \u0027bluestore_wal_devices\u0027]\""},{"line_number":63,"context_line":"      with_dict: \"{{ tripleo_ceph_ansible_disks_config | default({}) }}\""},{"line_number":64,"context_line":"    - name: set ceph_lvm_devices"},{"line_number":65,"context_line":"      when: \"\u0027lvm_volumes\u0027 in (tripleo_ceph_ansible_disks_config | default({})).keys()\""},{"line_number":66,"context_line":"      block:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"1fa4df85_c67484d3","line":63,"in_reply_to":"1fa4df85_04c93957","updated":"2020-03-11 10:17:28.000000000","message":"good point, thanks!\n\nfrom the man page it seems that the first regex that matches determines if the device will be accepted or rejected ... I will prepend the whitelist with \"r|.*openstack.*|\"","commit_id":"47936dac8fbf173cb138bbbbeb4d7cc76382f1d4"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"da779ad867095f637799c6a74da276b02ab43efa","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        ceph_devices: \"{{ ceph_devices | default([]) + item.value }}\""},{"line_number":61,"context_line":"      when:"},{"line_number":62,"context_line":"        - \"item.key in [\u0027devices\u0027, \u0027dedicated_devices\u0027, \u0027bluestore_wal_devices\u0027]\""},{"line_number":63,"context_line":"      with_dict: \"{{ tripleo_ceph_ansible_disks_config | default({}) }}\""},{"line_number":64,"context_line":"    - name: set ceph_lvm_devices"},{"line_number":65,"context_line":"      when: \"\u0027lvm_volumes\u0027 in (tripleo_ceph_ansible_disks_config | default({})).keys()\""},{"line_number":66,"context_line":"      block:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"1fa4df85_cd81e14c","line":63,"in_reply_to":"1fa4df85_89e45d3e","updated":"2020-03-12 17:41:47.000000000","message":"seems like no\n\nat the same time, I think we need to deal with the scenario in which ceph-storage nodes have host_vars set which override the standard list of devices assigned to ceph-voume :(","commit_id":"47936dac8fbf173cb138bbbbeb4d7cc76382f1d4"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"df8fde67543c1555f2c8c49ff4198808a5618938","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        ceph_devices: \"{{ ceph_devices | default([]) + item.value }}\""},{"line_number":61,"context_line":"      when:"},{"line_number":62,"context_line":"        - \"item.key in [\u0027devices\u0027, \u0027dedicated_devices\u0027, \u0027bluestore_wal_devices\u0027]\""},{"line_number":63,"context_line":"      with_dict: \"{{ tripleo_ceph_ansible_disks_config | default({}) }}\""},{"line_number":64,"context_line":"    - name: set ceph_lvm_devices"},{"line_number":65,"context_line":"      when: \"\u0027lvm_volumes\u0027 in (tripleo_ceph_ansible_disks_config | default({})).keys()\""},{"line_number":66,"context_line":"      block:"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"1fa4df85_89e45d3e","line":63,"in_reply_to":"1fa4df85_c67484d3","updated":"2020-03-11 10:34:07.000000000","message":"Alan, in fact I wonder if at this point it wouldn\u0027t be sufficient to have just r|.*openstack.*| in our global filter?","commit_id":"47936dac8fbf173cb138bbbbeb4d7cc76382f1d4"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"d1f3d486607cdf5088bcc134409605711b9ac754","unresolved":false,"context_lines":[{"line_number":52,"context_line":"      block:"},{"line_number":53,"context_line":"        - name: build lvm2 filter"},{"line_number":54,"context_line":"          set_fact:"},{"line_number":55,"context_line":"            filter: \"\\\"{{ allowed_devices | map(\u0027regex_replace\u0027, \u0027(.+)\u0027, \u0027a|\\\\1|\u0027) | join(\u0027\\\",\\\"\u0027) }}\\\",\\\"r|.*|\\\"\""},{"line_number":56,"context_line":"        - name: regenerate lvm config"},{"line_number":57,"context_line":"          become: true"},{"line_number":58,"context_line":"          command: \u003e"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_0bfeadae","line":55,"updated":"2020-09-28 16:40:36.000000000","message":"ps34 seems to have added a default \"r|.*|\" but I don\u0027t see an equivalent in tripleo_tripleo_lvmfilter_devices_denylist default value.\n\nIs that intentional?","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe3d28f5b8c304010c4b3bfff246587f296ef8d6","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            mode: \u00270644\u0027"},{"line_number":71,"context_line":"            backup: true"},{"line_number":72,"context_line":"          when:"},{"line_number":73,"context_line":"            - tripleo_tripleo_lvmfilter_enabled"},{"line_number":74,"context_line":"          notify:"},{"line_number":75,"context_line":"            - Refresh LVM caches"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_91b58281","line":73,"updated":"2020-09-17 14:28:11.000000000","message":"If this final conditional gates updating lvm.conf, then could we skip a lot of work by moving it up by adding it to the conditional at L22? In earlier patchsets, I believe you used the _debug variable to let the user generate the file without deploying it (so they could see the result).","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"45e2b690f02bbb9f960e57191739767e7834a505","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            mode: \u00270644\u0027"},{"line_number":71,"context_line":"            backup: true"},{"line_number":72,"context_line":"          when:"},{"line_number":73,"context_line":"            - tripleo_tripleo_lvmfilter_enabled"},{"line_number":74,"context_line":"          notify:"},{"line_number":75,"context_line":"            - Refresh LVM caches"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_fade5368","line":73,"in_reply_to":"9f560f44_770ffedf","updated":"2020-09-17 16:06:38.000000000","message":"I see, so setting _enabled to False is sort of a way of implementing a \"dry-run.\" You do most of the work, leave the artifact where the user can see it, but don\u0027t deploy the file.\n\nThis works for me, and I agree with the goal of not adding another THT parameter. Perhaps the THT parameter description could mention it works this way?\n\nAn alternative (although I don\u0027t want to suggest code churn) would be to name the ansible variable and THT parameter something like _dry_run and default it to True. Just a thought, and you can disregard if you prefer _enabled (I\u0027m OK with that, too).","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"5ac8713ffedaccb133c2a45aa4cff70fa7f66a57","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            mode: \u00270644\u0027"},{"line_number":71,"context_line":"            backup: true"},{"line_number":72,"context_line":"          when:"},{"line_number":73,"context_line":"            - tripleo_tripleo_lvmfilter_enabled"},{"line_number":74,"context_line":"          notify:"},{"line_number":75,"context_line":"            - Refresh LVM caches"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_770ffedf","line":73,"in_reply_to":"9f560f44_91b58281","updated":"2020-09-17 15:25:36.000000000","message":"true but I prefer running the few LV commands needed to run this and keep the resulting file in /tmp when not enabled instead of exposing an additional parameter in THT just for the purpose of \"testing\" the role functionality\n\nif you don\u0027t have a strong opinion about use of _debug, I\u0027d keep this as is","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"656ab347ad979f457494867b9932ac04a1010bc7","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            mode: \u00270644\u0027"},{"line_number":79,"context_line":"            backup: true"},{"line_number":80,"context_line":"          when:"},{"line_number":81,"context_line":"            - tripleo_tripleo_lvmfilter_enabled"},{"line_number":82,"context_line":"          notify:"},{"line_number":83,"context_line":"            - Refresh LVM caches"}],"source_content_type":"text/x-yaml","patch_set":35,"id":"9f560f44_f075c233","line":81,"updated":"2020-09-18 16:14:53.000000000","message":"I am still unsure about this ... maybe we can add a _dry_run parameter which isn\u0027t exposed in THT but people can use on deploy to explicitly make the role run without copying lvm.conf in /etc ?","commit_id":"cb4bd676940673cdbd4fe60a6fd6a33948792441"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"32af089b654ac53aea8de3c4f259b0d806b9f0f1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"      register: vgs_with_active_lvs"},{"line_number":28,"context_line":"    - name: set vgs"},{"line_number":29,"context_line":"      set_fact:"},{"line_number":30,"context_line":"        vgs: \"{{ (vgs_with_active_lvs.stdout | from_json).report[0].lv }}\""},{"line_number":31,"context_line":"    - name: get pvs in use by active vgs"},{"line_number":32,"context_line":"      become: true"},{"line_number":33,"context_line":"      command: vgs --noheadings --option pv_name {{ item }} --reportformat json"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"9f560f44_975f37e3","line":30,"updated":"2020-10-02 15:31:19.000000000","message":"it\u0027s not working in check mode, you need to add a when: vgs_with_active_lvs.stdout is defined","commit_id":"f6f2cbf22dc76cff2c83952707e2b9a6efd8e1e4"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"99362f5802248abc8bc0e9338e07b62d0c513f3c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"      register: vgs_with_active_lvs"},{"line_number":28,"context_line":"    - name: set vgs"},{"line_number":29,"context_line":"      set_fact:"},{"line_number":30,"context_line":"        vgs: \"{{ (vgs_with_active_lvs.stdout | from_json).report[0].lv }}\""},{"line_number":31,"context_line":"    - name: get pvs in use by active vgs"},{"line_number":32,"context_line":"      become: true"},{"line_number":33,"context_line":"      command: vgs --noheadings --option pv_name {{ item }} --reportformat json"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"9f560f44_eec17083","line":30,"in_reply_to":"9f560f44_975f37e3","updated":"2020-10-05 08:36:47.000000000","message":"thanks for bringing it up Emilien, I see now [1] docs saying check mode \"will not generate output for tasks that use conditionals based on registered variables (results of prior tasks)\" indeed.\n\nThough the majority of the steps here depend on the output of the first task... by adding such a \"when\" condition the check mode would just skip all the rest; still will update to make it pass the CI job\n\n1. https://docs.ansible.com/ansible/latest/user_guide/playbooks_checkmode.html","commit_id":"f6f2cbf22dc76cff2c83952707e2b9a6efd8e1e4"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"41ee1b784b56ff40bd30a9f8d6e2f8ff821eb035","unresolved":false,"context_lines":[{"line_number":21,"context_line":"- name: gather block devices used by lvm2"},{"line_number":22,"context_line":"  when: \"\u0027lvm2\u0027 in ansible_facts.packages\""},{"line_number":23,"context_line":"  block:"},{"line_number":24,"context_line":"    - name: get vgs with active lvs"},{"line_number":25,"context_line":"      become: true"},{"line_number":26,"context_line":"      command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":27,"context_line":"      register: vgs_with_active_lvs"},{"line_number":28,"context_line":"    - name: set vgs"},{"line_number":29,"context_line":"      set_fact:"},{"line_number":30,"context_line":"        vgs: \"{{ (vgs_with_active_lvs.stdout | from_json).report[0].lv }}\""},{"line_number":31,"context_line":"      when: vgs_with_active_lvs.stdout is defined"},{"line_number":32,"context_line":"    - name: get pvs in use by active vgs"},{"line_number":33,"context_line":"      become: true"},{"line_number":34,"context_line":"      command: vgs --noheadings --option pv_name {{ item }} --reportformat json"},{"line_number":35,"context_line":"      loop: \"{{ vgs | default([]) | map(attribute\u003d\u0027vg_name\u0027) | list | unique }}\""},{"line_number":36,"context_line":"      register: pvs_in_use"},{"line_number":37,"context_line":"    - name: set pvs"},{"line_number":38,"context_line":"      set_fact:"},{"line_number":39,"context_line":"        pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":40,"context_line":"      loop: \"{{ pvs_in_use.results }}\""},{"line_number":41,"context_line":"      when:"},{"line_number":42,"context_line":"        - pvs_in_use.results"},{"line_number":43,"context_line":"        - pvs_in_use.stdout is defined"},{"line_number":44,"context_line":"    - name: set allowed_devices"},{"line_number":45,"context_line":"      set_fact:"},{"line_number":46,"context_line":"        allowed_devices: \"{{ (pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":47,"context_line":"                         | intersect(ansible_devices.keys())"},{"line_number":48,"context_line":"                         + (tripleo_tripleo_lvmfilter_devices_allowlist | default([]))"},{"line_number":49,"context_line":"                         | unique }}\""},{"line_number":50,"context_line":"    - name: configure lvm filter"},{"line_number":51,"context_line":"      when:"},{"line_number":52,"context_line":"        - allowed_devices is defined"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"9f560f44_e1332cc3","line":49,"range":{"start_line":24,"start_character":0,"end_line":49,"end_character":37},"updated":"2020-10-06 13:26:54.000000000","message":"it would totally be better for this to be a module that returns these facts via the result.  You could even include the lvm2 allow/deny list in there too","commit_id":"ef6796dcc9b90fc2bbec0d74592a2e22f1f35559"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"45d1953dae9bd06b7a513fb826510f33508aad47","unresolved":false,"context_lines":[{"line_number":21,"context_line":"- name: gather block devices used by lvm2"},{"line_number":22,"context_line":"  when: \"\u0027lvm2\u0027 in ansible_facts.packages\""},{"line_number":23,"context_line":"  block:"},{"line_number":24,"context_line":"    - name: get vgs with active lvs"},{"line_number":25,"context_line":"      become: true"},{"line_number":26,"context_line":"      command: lvs --noheadings --options vg_name --select \u0027lv_active\u003dactive\u0027 --reportformat json"},{"line_number":27,"context_line":"      register: vgs_with_active_lvs"},{"line_number":28,"context_line":"    - name: set vgs"},{"line_number":29,"context_line":"      set_fact:"},{"line_number":30,"context_line":"        vgs: \"{{ (vgs_with_active_lvs.stdout | from_json).report[0].lv }}\""},{"line_number":31,"context_line":"      when: vgs_with_active_lvs.stdout is defined"},{"line_number":32,"context_line":"    - name: get pvs in use by active vgs"},{"line_number":33,"context_line":"      become: true"},{"line_number":34,"context_line":"      command: vgs --noheadings --option pv_name {{ item }} --reportformat json"},{"line_number":35,"context_line":"      loop: \"{{ vgs | default([]) | map(attribute\u003d\u0027vg_name\u0027) | list | unique }}\""},{"line_number":36,"context_line":"      register: pvs_in_use"},{"line_number":37,"context_line":"    - name: set pvs"},{"line_number":38,"context_line":"      set_fact:"},{"line_number":39,"context_line":"        pvs: \"{{ pvs | default([]) + (item.stdout | from_json).report[0].vg }}\""},{"line_number":40,"context_line":"      loop: \"{{ pvs_in_use.results }}\""},{"line_number":41,"context_line":"      when:"},{"line_number":42,"context_line":"        - pvs_in_use.results"},{"line_number":43,"context_line":"        - pvs_in_use.stdout is defined"},{"line_number":44,"context_line":"    - name: set allowed_devices"},{"line_number":45,"context_line":"      set_fact:"},{"line_number":46,"context_line":"        allowed_devices: \"{{ (pvs | default([]) | map(attribute\u003d\u0027pv_name\u0027) | list)"},{"line_number":47,"context_line":"                         | intersect(ansible_devices.keys())"},{"line_number":48,"context_line":"                         + (tripleo_tripleo_lvmfilter_devices_allowlist | default([]))"},{"line_number":49,"context_line":"                         | unique }}\""},{"line_number":50,"context_line":"    - name: configure lvm filter"},{"line_number":51,"context_line":"      when:"},{"line_number":52,"context_line":"        - allowed_devices is defined"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"9f560f44_606ebfc8","line":49,"range":{"start_line":24,"start_character":0,"end_line":49,"end_character":37},"in_reply_to":"9f560f44_e1332cc3","updated":"2020-10-09 10:21:25.000000000","message":"ok will try a _facts module to start with","commit_id":"ef6796dcc9b90fc2bbec0d74592a2e22f1f35559"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"e270d3becb86dc461fba8b614ecb9e0bb7130c87","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  package_facts:"},{"line_number":20,"context_line":"    manager: auto"},{"line_number":21,"context_line":"- name: gather allowed block devices list"},{"line_number":22,"context_line":"  when: \"\u0027lvm2\u0027 in ansible_facts.packages\""},{"line_number":23,"context_line":"  block:"},{"line_number":24,"context_line":"    - name: collect in-use lvm2 devices list"},{"line_number":25,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"3f65232a_3555a351","line":22,"updated":"2020-10-23 12:28:05.000000000","message":"very late to the party, but why isn\u0027t tripleo_tripleo_lvmfilter_enabled checked here? All the other operations should not be executed if it\u0027s not enabled.","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"4115d5d78b3fb41904ce67bee3cf49553936cc3e","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  package_facts:"},{"line_number":20,"context_line":"    manager: auto"},{"line_number":21,"context_line":"- name: gather allowed block devices list"},{"line_number":22,"context_line":"  when: \"\u0027lvm2\u0027 in ansible_facts.packages\""},{"line_number":23,"context_line":"  block:"},{"line_number":24,"context_line":"    - name: collect in-use lvm2 devices list"},{"line_number":25,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"3f65232a_64facb42","line":22,"in_reply_to":"3f65232a_33cc9b88","updated":"2020-10-23 16:48:05.000000000","message":"here is the follow up to deal with this https://review.opendev.org/#/c/759479/\n\nthis was raised by Alan in previous patchsets as well","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"e3e4a0db019c7e855efa662e8666bd9859726157","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  package_facts:"},{"line_number":20,"context_line":"    manager: auto"},{"line_number":21,"context_line":"- name: gather allowed block devices list"},{"line_number":22,"context_line":"  when: \"\u0027lvm2\u0027 in ansible_facts.packages\""},{"line_number":23,"context_line":"  block:"},{"line_number":24,"context_line":"    - name: collect in-use lvm2 devices list"},{"line_number":25,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"3f65232a_b84c0a77","line":22,"in_reply_to":"3f65232a_3555a351","updated":"2020-10-23 12:49:09.000000000","message":"Not quite true. The intention was to always go through the process of generating the filters (stage a copy of lvm.conf) so its contents is available for inspection. The _enabled flag controls whether the staged copy (/tmp/tripleo_lvmfilter.conf) actually gets installed.","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"99b51824b2078400056b2bf1af7255da6a476512","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  package_facts:"},{"line_number":20,"context_line":"    manager: auto"},{"line_number":21,"context_line":"- name: gather allowed block devices list"},{"line_number":22,"context_line":"  when: \"\u0027lvm2\u0027 in ansible_facts.packages\""},{"line_number":23,"context_line":"  block:"},{"line_number":24,"context_line":"    - name: collect in-use lvm2 devices list"},{"line_number":25,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"3f65232a_33cc9b88","line":22,"in_reply_to":"3f65232a_53f837c3","updated":"2020-10-23 14:02:42.000000000","message":"true, maybe I was too aggressive in trying that ... let\u0027s put back that _dry_run idea we have in ps#35\n\nwill work on a follow up patch","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"8f51af55fce28770d7675ae230405a72afd6e83a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"  package_facts:"},{"line_number":20,"context_line":"    manager: auto"},{"line_number":21,"context_line":"- name: gather allowed block devices list"},{"line_number":22,"context_line":"  when: \"\u0027lvm2\u0027 in ansible_facts.packages\""},{"line_number":23,"context_line":"  block:"},{"line_number":24,"context_line":"    - name: collect in-use lvm2 devices list"},{"line_number":25,"context_line":"      become: true"}],"source_content_type":"text/x-yaml","patch_set":49,"id":"3f65232a_53f837c3","line":22,"in_reply_to":"3f65232a_b84c0a77","updated":"2020-10-23 13:59:05.000000000","message":"That\u0027s not good then, because the default workflow is affected by this change. Any error introduced by this feature will break the normal deployment even when it\u0027s not enabled, which would be unexpected to say the least. Maybe you would need to add another variable then.","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"}],"tripleo_ansible/roles/tripleo_lvmfilter/vars/main.yml":[{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"bf7a146fe6b9a851fe5090847b65de3baa01ff20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"1fa4df85_9a16eba7","updated":"2020-03-10 15:28:54.000000000","message":"this file can be removed.","commit_id":"97d2f4809168b3d9395156123b41ef8c3d57d879"}],"tripleo_ansible/tests/modules/test_lvm2_physical_devices_facts.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"884a0432e78e9c3e055f77bd2f4717f8d4ea40dc","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        mock_module.run_command.return_value \u003d (0, \u0027 /dev/sdb1\\n /dev/sdb2\\n\u0027, \u0027\u0027)"},{"line_number":33,"context_line":"        result \u003d lvm2.get_vgs_with_active_lvs(mock_module)"},{"line_number":34,"context_line":"        self.assertEqual(Counter([\u0027/dev/sdb1\u0027,\u0027/dev/sdb2\u0027]), Counter(result))"}],"source_content_type":"text/x-python","patch_set":42,"id":"9f560f44_9ecfebb1","line":34,"updated":"2020-10-09 19:08:34.000000000","message":"linters: E231 missing whitespace after \u0027,\u0027","commit_id":"fbcac94eefa2483d648875d055219f4dca84140a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"884a0432e78e9c3e055f77bd2f4717f8d4ea40dc","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        mock_module.run_command.return_value \u003d (0, \u0027 /dev/sdb1\\n /dev/sdb2\\n\u0027, \u0027\u0027)"},{"line_number":33,"context_line":"        result \u003d lvm2.get_vgs_with_active_lvs(mock_module)"},{"line_number":34,"context_line":"        self.assertEqual(Counter([\u0027/dev/sdb1\u0027,\u0027/dev/sdb2\u0027]), Counter(result))"}],"source_content_type":"text/x-python","patch_set":42,"id":"9f560f44_7ed49747","line":34,"updated":"2020-10-09 19:08:34.000000000","message":"role-addition: E231 missing whitespace after \u0027,\u0027","commit_id":"fbcac94eefa2483d648875d055219f4dca84140a"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"eb8503633b137d09b9f4ec5bc4b57ab59a67ef27","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2019 Red Hat, Inc."},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_139b7872","line":1,"updated":"2020-10-14 13:37:27.000000000","message":"2020","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"eb8503633b137d09b9f4ec5bc4b57ab59a67ef27","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        mock_module.run_command.return_value \u003d (0, \u0027 myvgname\\n myvgname\\n\u0027, \u0027\u0027)"},{"line_number":29,"context_line":"        result \u003d lvm2.get_vgs_with_active_lvs(mock_module)"},{"line_number":30,"context_line":"        self.assertEqual([\u0027myvgname\u0027], result)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        mock_module.run_command.return_value \u003d (0, \u0027 /dev/sdb1\\n /dev/sdb2\\n\u0027, \u0027\u0027)"},{"line_number":33,"context_line":"        result \u003d lvm2.get_vgs_with_active_lvs(mock_module)"}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_d390e051","line":30,"updated":"2020-10-14 13:37:27.000000000","message":"Yup, no dups!","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"3890ce402a4b28011aa367fc2a932ae8aa9c7004","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        mock_module.run_command.return_value \u003d (0, \u0027 myvgname\\n myvgname\\n\u0027, \u0027\u0027)"},{"line_number":29,"context_line":"        result \u003d lvm2.get_vgs_with_active_lvs(mock_module)"},{"line_number":30,"context_line":"        self.assertEqual([\u0027myvgname\u0027], result)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        mock_module.run_command.return_value \u003d (0, \u0027 /dev/sdb1\\n /dev/sdb2\\n\u0027, \u0027\u0027)"},{"line_number":33,"context_line":"        result \u003d lvm2.get_vgs_with_active_lvs(mock_module)"}],"source_content_type":"text/x-python","patch_set":49,"id":"7f6b1bfe_7e8ef327","line":30,"in_reply_to":"7f6b1bfe_d390e051","updated":"2020-10-14 14:34:13.000000000","message":"yeah the tests aren\u0027t great but this is pretty much everything it does really, runs a command and returns output nicely formatted :(","commit_id":"696814e296cd80cbde134659b61b7e30424d1bc3"}],"zuul.d/molecule.yaml":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"99395e7a2eeab9b196d300fb538c0d1aef5b2607","unresolved":false,"context_lines":[{"line_number":115,"context_line":"- job:"},{"line_number":116,"context_line":"    files:"},{"line_number":117,"context_line":"    - ^tripleo_ansible/roles/skeleton_test/.*"},{"line_number":118,"context_line":"    name: tripleo-ansible-centos-7-molecule-skeleton_test"},{"line_number":119,"context_line":"    parent: tripleo-ansible-centos-7-base"},{"line_number":120,"context_line":"    vars:"},{"line_number":121,"context_line":"      tripleo_role_name: skeleton_test"}],"source_content_type":"text/x-yaml","patch_set":24,"id":"1fa4df85_fd1e39b9","line":118,"updated":"2020-03-05 14:42:50.000000000","message":"got mistakenly added here, thanks Kevin","commit_id":"d00a50dea30cafec1faa1276262546adbfd6f8d0"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"7ef166aec92ad94c01cb287c2205532b3f557e0e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    - ^tox.ini"},{"line_number":133,"context_line":"    - ^molecule-requirements.txt"},{"line_number":134,"context_line":"    name: tripleo-ansible-centos-7-molecule-tripleo-modules"},{"line_number":135,"context_line":"    parent: tripleo-ansible-centos-7-base"},{"line_number":136,"context_line":"- job:"},{"line_number":137,"context_line":"    files:"},{"line_number":138,"context_line":"    - ^tripleo_ansible/roles/tripleo_bootstrap/.*"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_ad6b97ee","line":135,"updated":"2020-03-06 21:34:17.000000000","message":"where did this thing comes from? Seems unrelated to this change","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"2c35d299084f24a112b773c8305d8fb03a1c5ceb","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    - ^tox.ini"},{"line_number":133,"context_line":"    - ^molecule-requirements.txt"},{"line_number":134,"context_line":"    name: tripleo-ansible-centos-7-molecule-tripleo-modules"},{"line_number":135,"context_line":"    parent: tripleo-ansible-centos-7-base"},{"line_number":136,"context_line":"- job:"},{"line_number":137,"context_line":"    files:"},{"line_number":138,"context_line":"    - ^tripleo_ansible/roles/tripleo_bootstrap/.*"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_134e78c0","line":135,"in_reply_to":"1fa4df85_5b2f2c87","updated":"2020-03-09 18:12:02.000000000","message":"seems like it was just a reorder of -modules (see line 262)","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"c8984433bb5b2d14e5c424506750dbd8114bbf60","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    - ^tox.ini"},{"line_number":133,"context_line":"    - ^molecule-requirements.txt"},{"line_number":134,"context_line":"    name: tripleo-ansible-centos-7-molecule-tripleo-modules"},{"line_number":135,"context_line":"    parent: tripleo-ansible-centos-7-base"},{"line_number":136,"context_line":"- job:"},{"line_number":137,"context_line":"    files:"},{"line_number":138,"context_line":"    - ^tripleo_ansible/roles/tripleo_bootstrap/.*"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1fa4df85_5b2f2c87","line":135,"in_reply_to":"1fa4df85_ad6b97ee","updated":"2020-03-09 13:18:37.000000000","message":"I guess this was in some old patchset and I carried it forward even though it has been deleted from the git tip; I\u0027ll remove it","commit_id":"d31e284fa8e65dba96c70d8918c636f6f2dc7dc4"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"fe3d28f5b8c304010c4b3bfff246587f296ef8d6","unresolved":false,"context_lines":[{"line_number":107,"context_line":"      - tripleo-ansible-centos-8-molecule-tuned"},{"line_number":108,"context_line":"      - tripleo-ansible-centos-8-role-addition"},{"line_number":109,"context_line":"    name: tripleo-ansible-molecule-jobs"},{"line_number":110,"context_line":"    periodic-weekly:"},{"line_number":111,"context_line":"      jobs:"},{"line_number":112,"context_line":"      - tripleo-ansible-centos-8-molecule-aide"},{"line_number":113,"context_line":"      - tripleo-ansible-centos-8-molecule-backup_and_restore"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9f560f44_311ab67b","line":110,"updated":"2020-09-17 14:28:11.000000000","message":"I don\u0027t know when roles should be included in the periodic-weekly job. The example I followed when I developed a role added it here, and so I added mine as well. But I don\u0027t know if there\u0027s a policy for when they should be added.","commit_id":"69e9d4011b317b8b3e5d9da9343f899f27958c6e"}]}
