)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"825c850253590f6b66d509720d9df75b1c33937f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0f08d7ea_3d4277eb","updated":"2023-06-06 19:53:57.000000000","message":"I mean, yeah :) Good job, this is pretty spot on. Small nit inline, and then  we\u0027ll need to add a pre playbook to our upstream jobs to enable this.","commit_id":"af75250d9562134bbe12418d27747b8c23eb2a46"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"8be2e3934b07a311b13b0a716a2b9e53d3aaea29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"69263fce_a977fe80","updated":"2023-10-11 14:34:36.000000000","message":"This is currently running downstream in multi-rhel CI.  Just need to update all other relevant whitebox jobs to generate their own respective testbed YAML definition and confirm there are no issues.  Will work with Jason on getting that conversion done in our staging environment.  When that is complete I think this is ready for review/merge.","commit_id":"30cedbdb5c0b46f8951a4ff08af4bb3a2147169e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"547124f5ef1013da3bfdf30d42082e4f47948557","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"377672cf_90b5d085","updated":"2023-10-12 18:35:58.000000000","message":"recheck","commit_id":"30cedbdb5c0b46f8951a4ff08af4bb3a2147169e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"397a44311d973ae616635ddf6b8639c68c7c63b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"2675f9d7_38d8413e","updated":"2023-11-06 17:46:45.000000000","message":"recheck","commit_id":"e8ec8e2b9545396f1147b34a21b186cf3ef76051"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"f8f94e63ac6468855781de0d65aa4dbe12a0b862","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"8974ade6_a8117028","updated":"2023-11-06 21:33:02.000000000","message":"recheck","commit_id":"0862482e4fa8154b5b2db483b7072dad7e2a06cc"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"225da782f53db4718dc5732439cdd8c8c0e1a60c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"f9494331_b2a9b1f5","updated":"2023-11-11 17:43:04.000000000","message":"Ideally, we\u0027d also remove all unit test code, as well as the job templates that execute the various py* jobs, but I can do that in a follow up cleanup patch.","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"418711b0c3ac21d58b082e38c003f5c32e522f4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"cebeb683_26c0d182","updated":"2023-11-11 17:40:25.000000000","message":"Looking good, just think there are old config options that we can clean up","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"2766d94611e8b5ec7dfcc65fba4f8102d3970691","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"8406d151_fff8155b","updated":"2023-11-13 18:40:26.000000000","message":"Addressed my own last couple of small things since I missed them in the first pass, LGTM.","commit_id":"0ee6db6ee85c78e60336fb222ade5dbf4ee38669"}],"devstack/plugin.sh":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"2766d94611e8b5ec7dfcc65fba4f8102d3970691","unresolved":true,"context_lines":[{"line_number":20,"context_line":"    iniset $TEMPEST_CONFIG whitebox max_disk_devices_to_attach $WHITEBOX_MAX_DISK_DEVICES_TO_ATTACH"},{"line_number":21,"context_line":"    iniset $TEMPEST_CONFIG whitebox nodes_yaml $WHITEBOX_NODES_YAML"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    iniset $TEMPEST_CONFIG whitebox-nova-compute config_path \"$WHITEBOX_NOVA_COMPUTE_CONFIG_PATH\""},{"line_number":24,"context_line":"    iniset $TEMPEST_CONFIG whitebox-nova-compute stop_command \"$WHITEBOX_NOVA_COMPUTE_STOP_COMMAND\""},{"line_number":25,"context_line":"    iniset $TEMPEST_CONFIG whitebox-nova-compute start_command \"$WHITEBOX_NOVA_COMPUTE_START_COMMAND\""},{"line_number":26,"context_line":""}],"source_content_type":"text/x-sh","patch_set":27,"id":"3a373a30_0602489d","line":23,"updated":"2023-11-13 18:40:26.000000000","message":"We can remove these as well, missed those during my initial pass.","commit_id":"0ee6db6ee85c78e60336fb222ade5dbf4ee38669"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"2766d94611e8b5ec7dfcc65fba4f8102d3970691","unresolved":true,"context_lines":[{"line_number":27,"context_line":"    iniset $TEMPEST_CONFIG whitebox-libvirt start_command \"$WHITEBOX_LIBVIRT_START_COMMAND\""},{"line_number":28,"context_line":"    iniset $TEMPEST_CONFIG whitebox-libvirt stop_command \"$WHITEBOX_LIBVIRT_STOP_COMMAND\""},{"line_number":29,"context_line":"    iniset $TEMPEST_CONFIG whitebox-libvirt mask_command \"$WHITEBOX_LIBVIRT_MASK_COMMAND\""},{"line_number":30,"context_line":"    iniset $TEMPEST_CONFIG whitebox-libvirt unmask_command \"$WHITEBOX_LIBVIRT_UNMASK_COMMAND\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    iniset $TEMPEST_CONFIG whitebox-database user $DATABASE_USER"},{"line_number":33,"context_line":"    iniset $TEMPEST_CONFIG whitebox-database password $DATABASE_PASSWORD"}],"source_content_type":"text/x-sh","patch_set":27,"id":"38d58e94_9e9e3ead","line":30,"updated":"2023-11-13 18:40:26.000000000","message":"... remove up to here.","commit_id":"0ee6db6ee85c78e60336fb222ade5dbf4ee38669"}],"devstack/settings":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"2766d94611e8b5ec7dfcc65fba4f8102d3970691","unresolved":true,"context_lines":[{"line_number":8,"context_line":"WHITEBOX_MAX_DISK_DEVICES_TO_ATTACH\u003d${WHITEBOX_MAX_DISK_DEVICES_TO_ATTACH:-7}"},{"line_number":9,"context_line":"WHITEBOX_NODES_YAML\u003d${WHITEBOX_NODES_YAML:-\u0027/home/zuul/compute_nodes.yaml\u0027}"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"WHITEBOX_NOVA_COMPUTE_CONFIG_PATH\u003d${WHITEBOX_NOVA_COMPUTE_CONFIG_PATH:-/etc/nova/nova-cpu.conf}"},{"line_number":12,"context_line":"WHITEBOX_NOVA_COMPUTE_STOP_COMMAND\u003d${WHITEBOX_NOVA_COMPUTE_STOP_COMMAND:-\u0027systemctl stop devstack@n-cpu\u0027}"},{"line_number":13,"context_line":"WHITEBOX_NOVA_COMPUTE_START_COMMAND\u003d${WHITEBOX_NOVA_COMPUTE_START_COMMAND:-\u0027systemctl start devstack@n-cpu\u0027}"},{"line_number":14,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":27,"id":"6af5da50_774e768b","line":11,"updated":"2023-11-13 18:40:26.000000000","message":"And these","commit_id":"0ee6db6ee85c78e60336fb222ade5dbf4ee38669"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"2766d94611e8b5ec7dfcc65fba4f8102d3970691","unresolved":true,"context_lines":[{"line_number":15,"context_line":"WHITEBOX_LIBVIRT_START_COMMAND\u003d${WHITEBOX_LIBVIRT_START_COMMAND:-\u0027systemctl start libvirtd\u0027}"},{"line_number":16,"context_line":"WHITEBOX_LIBVIRT_STOP_COMMAND\u003d${WHITEBOX_LIBVIRT_STOP_COMMAND:-\u0027systemctl stop libvirtd\u0027}"},{"line_number":17,"context_line":"WHITEBOX_LIBVIRT_MASK_COMMAND\u003d${WHITEBOX_LIBVIRT_MASK_COMMAND:-\u0027systemctl mask libvirtd\u0027}"},{"line_number":18,"context_line":"WHITEBOX_LIBVIRT_UNMASK_COMMAND\u003d${WHITEBOX_LIBVIRT_UNMASK_COMMAND:-\u0027systemctl unmask libvirtd\u0027}"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"WHITEBOX_CPU_TOPOLOGY\u003d${WHITEBOX_CPU_TOPOLOGY:-\u0027\u0027}"},{"line_number":21,"context_line":"WHITEBOX_DEDICATED_CPUS_PER_NUMA\u003d${WHITEBOX_DEDICATED_CPUS_PER_NUMA:-4}"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"18428879_e1db7836","line":18,"updated":"2023-11-13 18:40:26.000000000","message":"Up to here.","commit_id":"0ee6db6ee85c78e60336fb222ade5dbf4ee38669"}],"playbooks/templates/compute_nodes.yaml.j2":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"418711b0c3ac21d58b082e38c003f5c32e522f4f","unresolved":true,"context_lines":[{"line_number":2,"context_line":"{{ compute }}:"},{"line_number":3,"context_line":"  services:"},{"line_number":4,"context_line":"    libvirt:"},{"line_number":5,"context_line":"      container_name: nova_virtqemud"},{"line_number":6,"context_line":"      start_command: \u0027systemctl start libvirtd\u0027"},{"line_number":7,"context_line":"      stop_command: \u0027systemctl stop libvirtd\u0027"},{"line_number":8,"context_line":"      mask_command: \u0027systemctl mask libvirtd\u0027"}],"source_content_type":"text/x-jinja2","patch_set":26,"id":"bf8277f7_9484249c","line":5,"updated":"2023-11-11 17:40:25.000000000","message":"container_name isn\u0027t relevant in a devstack deployment, I\u0027m not sure how we should handle that... Set it to None? Leave it out entirely? Is the code that\u0027s using this capable of handling a \"missing\" value?","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"1b60d5ffe261f8bc6bff9ec82341a40a116d9953","unresolved":false,"context_lines":[{"line_number":2,"context_line":"{{ compute }}:"},{"line_number":3,"context_line":"  services:"},{"line_number":4,"context_line":"    libvirt:"},{"line_number":5,"context_line":"      container_name: nova_virtqemud"},{"line_number":6,"context_line":"      start_command: \u0027systemctl start libvirtd\u0027"},{"line_number":7,"context_line":"      stop_command: \u0027systemctl stop libvirtd\u0027"},{"line_number":8,"context_line":"      mask_command: \u0027systemctl mask libvirtd\u0027"}],"source_content_type":"text/x-jinja2","patch_set":26,"id":"0ab51849_c30cf22a","line":5,"in_reply_to":"2abf1560_28855c0e","updated":"2023-11-13 17:44:59.000000000","message":"No issues reported after removal.","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"8de22948331f220b083ec14284fcae7bed92c35d","unresolved":true,"context_lines":[{"line_number":2,"context_line":"{{ compute }}:"},{"line_number":3,"context_line":"  services:"},{"line_number":4,"context_line":"    libvirt:"},{"line_number":5,"context_line":"      container_name: nova_virtqemud"},{"line_number":6,"context_line":"      start_command: \u0027systemctl start libvirtd\u0027"},{"line_number":7,"context_line":"      stop_command: \u0027systemctl stop libvirtd\u0027"},{"line_number":8,"context_line":"      mask_command: \u0027systemctl mask libvirtd\u0027"}],"source_content_type":"text/x-jinja2","patch_set":26,"id":"2abf1560_28855c0e","line":5,"in_reply_to":"bf8277f7_9484249c","updated":"2023-11-13 15:36:53.000000000","message":"It should, my followup PS will remove it completely to confirm there are no issues.","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"}],"playbooks/whitebox/pre.yaml":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"418711b0c3ac21d58b082e38c003f5c32e522f4f","unresolved":true,"context_lines":[{"line_number":40,"context_line":"      run_once: true"},{"line_number":41,"context_line":"      delegate_to: controller"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    - name: Resuling file"},{"line_number":44,"context_line":"      shell: |"},{"line_number":45,"context_line":"        cat /home/zuul/compute_nodes.yaml"},{"line_number":46,"context_line":"      run_once: true"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"b37bfe83_24b48b75","line":43,"updated":"2023-11-11 17:40:25.000000000","message":"nit: rename this to something more descriptive\n\nI\u0027m not a huge fan of this, it feels like a temporary hack, but I think the complexity to \"properly\" collect this file in the logs might not be worth it. In any case, it can be follow up, this is fine to start.","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"8de22948331f220b083ec14284fcae7bed92c35d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      run_once: true"},{"line_number":41,"context_line":"      delegate_to: controller"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    - name: Resuling file"},{"line_number":44,"context_line":"      shell: |"},{"line_number":45,"context_line":"        cat /home/zuul/compute_nodes.yaml"},{"line_number":46,"context_line":"      run_once: true"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"5b29f3d8_cf4eccea","line":43,"in_reply_to":"b37bfe83_24b48b75","updated":"2023-11-13 15:36:53.000000000","message":"Ack","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"}],"whitebox_tempest_plugin/config.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"825c850253590f6b66d509720d9df75b1c33937f","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"general_opts \u003d ["},{"line_number":25,"context_line":"    cfg.StrOpt("},{"line_number":26,"context_line":"        \u0027computes_provider_yaml\u0027,"},{"line_number":27,"context_line":"        help\u003d\u0027File path to the yaml description file of the compute hosts \u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt("},{"line_number":29,"context_line":"        \u0027ctlplane_ssh_username\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"582f7303_9f943838","line":26,"updated":"2023-06-06 19:53:57.000000000","message":"I know we\u0027re using provider.yaml for inspiration, but this should be called something like nodes_yaml","commit_id":"af75250d9562134bbe12418d27747b8c23eb2a46"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"e76eeaf4a11f78ad7b3d6472b7597ae7234f2c30","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"general_opts \u003d ["},{"line_number":25,"context_line":"    cfg.StrOpt("},{"line_number":26,"context_line":"        \u0027computes_provider_yaml\u0027,"},{"line_number":27,"context_line":"        help\u003d\u0027File path to the yaml description file of the compute hosts \u0027),"},{"line_number":28,"context_line":"    cfg.StrOpt("},{"line_number":29,"context_line":"        \u0027ctlplane_ssh_username\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"42272a13_aff36aeb","line":26,"in_reply_to":"582f7303_9f943838","updated":"2023-06-08 21:20:13.000000000","message":"Done","commit_id":"af75250d9562134bbe12418d27747b8c23eb2a46"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"418711b0c3ac21d58b082e38c003f5c32e522f4f","unresolved":true,"context_lines":[{"line_number":148,"context_line":"        help\u003d\u0027Command to stop the nova-compute service, without any \u0027"},{"line_number":149,"context_line":"             \u0027privilege management (ie, no sudo).\u0027),"},{"line_number":150,"context_line":"    cfg.StrOpt("},{"line_number":151,"context_line":"        \u0027log_query_command\u0027,"},{"line_number":152,"context_line":"        default\u003d\"journalctl\","},{"line_number":153,"context_line":"        choices\u003d[\"journalctl\", \"zgrep\"],"},{"line_number":154,"context_line":"        help\u003d\"Name of the utility to run LogParserClient commands. \""}],"source_content_type":"text/x-python","patch_set":26,"id":"e546eb94_befc239a","line":151,"updated":"2023-11-11 17:40:25.000000000","message":"So we need to keep this, but we can drop everything else in this section, no?","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"8de22948331f220b083ec14284fcae7bed92c35d","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        help\u003d\u0027Command to stop the nova-compute service, without any \u0027"},{"line_number":149,"context_line":"             \u0027privilege management (ie, no sudo).\u0027),"},{"line_number":150,"context_line":"    cfg.StrOpt("},{"line_number":151,"context_line":"        \u0027log_query_command\u0027,"},{"line_number":152,"context_line":"        default\u003d\"journalctl\","},{"line_number":153,"context_line":"        choices\u003d[\"journalctl\", \"zgrep\"],"},{"line_number":154,"context_line":"        help\u003d\"Name of the utility to run LogParserClient commands. \""}],"source_content_type":"text/x-python","patch_set":26,"id":"0d9ed5dd_58665e60","line":151,"in_reply_to":"e546eb94_befc239a","updated":"2023-11-13 15:36:53.000000000","message":"Yes, maybe in a follow up it could move sections?","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"418711b0c3ac21d58b082e38c003f5c32e522f4f","unresolved":true,"context_lines":[{"line_number":160,"context_line":"    name\u003d\u0027whitebox-libvirt\u0027,"},{"line_number":161,"context_line":"    title\u003d\u0027Config options to manage the libvirt service\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"libvirt_opts \u003d ["},{"line_number":164,"context_line":"    cfg.StrOpt("},{"line_number":165,"context_line":"        \u0027start_command\u0027,"},{"line_number":166,"context_line":"        help\u003d\u0027Command to start the libvirt service, without any \u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"39515987_22cd4f1b","line":163,"updated":"2023-11-11 17:40:25.000000000","message":"So we can drop this entire section, no?","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"8de22948331f220b083ec14284fcae7bed92c35d","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    name\u003d\u0027whitebox-libvirt\u0027,"},{"line_number":161,"context_line":"    title\u003d\u0027Config options to manage the libvirt service\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"libvirt_opts \u003d ["},{"line_number":164,"context_line":"    cfg.StrOpt("},{"line_number":165,"context_line":"        \u0027start_command\u0027,"},{"line_number":166,"context_line":"        help\u003d\u0027Command to start the libvirt service, without any \u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"2d0d0487_69e3d77b","line":163,"in_reply_to":"39515987_22cd4f1b","updated":"2023-11-13 15:36:53.000000000","message":"Yes this can be completely dropped.","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"}],"whitebox_tempest_plugin/services/clients.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"418711b0c3ac21d58b082e38c003f5c32e522f4f","unresolved":true,"context_lines":[{"line_number":65,"context_line":"        service_dict \u003d self.host_parameters.get(\u0027services\u0027, {}).get(\u0027libvirt\u0027)"},{"line_number":66,"context_line":"        if service_dict is None:"},{"line_number":67,"context_line":"            raise exceptions.MissingServiceSectionException(service\u003d\u0027libvirt\u0027)"},{"line_number":68,"context_line":"        self.container_name \u003d service_dict.get(\u0027container_name\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def dumpxml(self, domain):"},{"line_number":71,"context_line":"        command \u003d \u0027virsh dumpxml %s\u0027 % domain"}],"source_content_type":"text/x-python","patch_set":26,"id":"46591e66_d16ec3ae","line":68,"updated":"2023-11-11 17:40:25.000000000","message":"So this return None if there is no container name, which... is actually the correct behaviour, I think? As in, in a non-containerized deployment, it would make sense for this to be None.","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"8de22948331f220b083ec14284fcae7bed92c35d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        service_dict \u003d self.host_parameters.get(\u0027services\u0027, {}).get(\u0027libvirt\u0027)"},{"line_number":66,"context_line":"        if service_dict is None:"},{"line_number":67,"context_line":"            raise exceptions.MissingServiceSectionException(service\u003d\u0027libvirt\u0027)"},{"line_number":68,"context_line":"        self.container_name \u003d service_dict.get(\u0027container_name\u0027)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def dumpxml(self, domain):"},{"line_number":71,"context_line":"        command \u003d \u0027virsh dumpxml %s\u0027 % domain"}],"source_content_type":"text/x-python","patch_set":26,"id":"36dbf422_8822dbe7","line":68,"in_reply_to":"46591e66_d16ec3ae","updated":"2023-11-13 15:36:53.000000000","message":"Yeah this conditional acts on if containers and container_name are set: https://opendev.org/openstack/whitebox-tempest-plugin/src/commit/5fff0da47a5f446ef5a36d05c432dd5886dd5e37/whitebox_tempest_plugin/services/clients.py#L47. So in this specific instance the subsequent function calls will just pass None when calling self.execute.","commit_id":"03fb5f63cf0169153d692f6b8d1ca07e59afc213"}]}
