)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"cc4a288b64a9839b1cd183f63437c4da041a6084","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4c292989_1d951739","updated":"2026-05-21 19:02:31.000000000","message":"recheck - rocky bug","commit_id":"ef4deeb3e156f1d1faf237b3906794800df79e24"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"729a3c94e9e37d72255afd69599dc9418b4b25aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f17f1dd1_dcb19b03","updated":"2026-07-01 15:24:49.000000000","message":"It looks useful, thanks Bertrand.","commit_id":"85517164e2f6e50911709e6a1920b5953f2cc44a"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"7b2d78e012e23e32770111847cda88265f8aefa9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"152ed705_ef76a1e2","updated":"2026-06-29 20:57:11.000000000","message":"let\u0027s try something nicer now that we have everything in a-c-o","commit_id":"85517164e2f6e50911709e6a1920b5953f2cc44a"}],"ansible/roles/nova-cell/tasks/aggregate.yml":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"729a3c94e9e37d72255afd69599dc9418b4b25aa","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  ansible.builtin.set_fact:"},{"line_number":4,"context_line":"    _nova_az_host_map: \u003e-"},{"line_number":5,"context_line":"      {{"},{"line_number":6,"context_line":"        _nova_az_host_map | default({}) | combine({"},{"line_number":7,"context_line":"          hostvars[item][\u0027nova_compute_availability_zone\u0027]:"},{"line_number":8,"context_line":"            (_nova_az_host_map | default({}))[hostvars[item][\u0027nova_compute_availability_zone\u0027]] | default([])"},{"line_number":9,"context_line":"            + [hostvars[item][\u0027ansible_facts\u0027][\u0027nodename\u0027]]"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5c8283f8_b9e9e2d0","line":6,"updated":"2026-07-01 15:24:49.000000000","message":"It might be worth moving this to a custom filter so that it\u0027s easier to read /test?","commit_id":"85517164e2f6e50911709e6a1920b5953f2cc44a"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"b06a33817484faa67ce6d6d79b7ac94f5354d67d","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  ansible.builtin.set_fact:"},{"line_number":4,"context_line":"    _nova_az_host_map: \u003e-"},{"line_number":5,"context_line":"      {{"},{"line_number":6,"context_line":"        _nova_az_host_map | default({}) | combine({"},{"line_number":7,"context_line":"          hostvars[item][\u0027nova_compute_availability_zone\u0027]:"},{"line_number":8,"context_line":"            (_nova_az_host_map | default({}))[hostvars[item][\u0027nova_compute_availability_zone\u0027]] | default([])"},{"line_number":9,"context_line":"            + [hostvars[item][\u0027ansible_facts\u0027][\u0027nodename\u0027]]"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"9295c77b_ffe2dadb","line":6,"in_reply_to":"5c8283f8_b9e9e2d0","updated":"2026-07-03 21:08:04.000000000","message":"that\u0027s true, this is becoming quite a mess lol","commit_id":"85517164e2f6e50911709e6a1920b5953f2cc44a"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"46004062e9bf73bd762677c38f62658329a7dac5","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  ansible.builtin.set_fact:"},{"line_number":4,"context_line":"    _nova_az_host_map: \u003e-"},{"line_number":5,"context_line":"      {{"},{"line_number":6,"context_line":"        _nova_az_host_map | default({}) | combine({"},{"line_number":7,"context_line":"          hostvars[item][\u0027nova_compute_availability_zone\u0027]:"},{"line_number":8,"context_line":"            (_nova_az_host_map | default({}))[hostvars[item][\u0027nova_compute_availability_zone\u0027]] | default([])"},{"line_number":9,"context_line":"            + [hostvars[item][\u0027ansible_facts\u0027][\u0027nodename\u0027]]"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"b2a88e36_215d6e85","line":6,"in_reply_to":"9295c77b_ffe2dadb","updated":"2026-07-03 21:19:50.000000000","message":"Done","commit_id":"85517164e2f6e50911709e6a1920b5953f2cc44a"}],"doc/source/reference/compute/nova-guide.rst":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"729a3c94e9e37d72255afd69599dc9418b4b25aa","unresolved":true,"context_lines":[{"line_number":164,"context_line":".. code-block:: yaml"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   # host_vars/compute01"},{"line_number":167,"context_line":"   nova_compute_availability_zone: az-1"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   # group_vars/gpu_computes"},{"line_number":170,"context_line":"   nova_compute_availability_zone: az-gpu"}],"source_content_type":"text/x-rst","patch_set":3,"id":"87266a17_deeb26b8","line":167,"updated":"2026-07-01 15:24:49.000000000","message":"Any thoughts on combining ``nova_compute_availability_zone`` with `nova_compute_aggregates`? One benefit would be to support custom names for the aggregate in this case which might be useful for existing operators. eg:\n\n``\nnova_compute_registration_options: {\"az\": \"az-1\", \"aggregates\": [\"az-1-zone-3\"]}\n``\n\nand then below:\n``\nnova_compute_registration_options: {\"aggregates\": [\"zone-3\",\"zone-2\"]}\n``","commit_id":"85517164e2f6e50911709e6a1920b5953f2cc44a"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"b06a33817484faa67ce6d6d79b7ac94f5354d67d","unresolved":true,"context_lines":[{"line_number":164,"context_line":".. code-block:: yaml"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   # host_vars/compute01"},{"line_number":167,"context_line":"   nova_compute_availability_zone: az-1"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   # group_vars/gpu_computes"},{"line_number":170,"context_line":"   nova_compute_availability_zone: az-gpu"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9faea35d_6896c32d","line":167,"in_reply_to":"87266a17_deeb26b8","updated":"2026-07-03 21:08:04.000000000","message":"I\u0027m not sure I understand what you meant ? \n\nthis is the equivalent of \n\n`nova_compute_availability_zone: az-1` and `nova_compute_aggregates: [\"zone-3\",\"zone-2\"]` ? I did these separately because when I designed this I was grouping those separately because of the hard requirement that a compute host can only have a single az set at any given time (and so the logic for adding /removing az was different from adding/removing aggregates). it made sense when I did it initially, but I can see a point in grouping them under a single key.\n\nHowever, I don\u0027t understand what\u0027s the added benefit (tho I kind of agree even from a \"design\" standpoint this seems like a better way of presenting it to the user)\n\nthe one thing I can see that we would lose if grouping them, is that you couldn\u0027t set az at a group level (create az1,az2,az3 groups that would be children of compute group, and set the value once for the entire az1 group `nova_compute_availability_zone: az-1`, then aggregates are customized per compute or even per groups under children groups for the az ? or separate groups entirely)\n\nif we nest everything under a single key this becomes much harder to do and you\u0027d have to do some variable merging dark magic to get it to work properly. It can be done but I\u0027d add some guidance on how to do it because it\u0027s not trivial.","commit_id":"85517164e2f6e50911709e6a1920b5953f2cc44a"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"22dcab22e887d339c8add7ceb1e5c88321ea184e","unresolved":false,"context_lines":[{"line_number":164,"context_line":".. code-block:: yaml"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   # host_vars/compute01"},{"line_number":167,"context_line":"   nova_compute_availability_zone: az-1"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"   # group_vars/gpu_computes"},{"line_number":170,"context_line":"   nova_compute_availability_zone: az-gpu"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b45b120e_0a755b43","line":167,"in_reply_to":"9faea35d_6896c32d","updated":"2026-07-08 15:21:07.000000000","message":"Thanks for explaining, I\u0027m fine with leaving it as-is.","commit_id":"85517164e2f6e50911709e6a1920b5953f2cc44a"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"d568982fb9b5e71d05dfc7f5abe334335c51ad03","unresolved":true,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"When a host moves from one AZ to another, Kolla Ansible removes it from the"},{"line_number":173,"context_line":"old aggregate before adding it to the new one, avoiding Nova\u0027s restriction that"},{"line_number":174,"context_line":"a host may only belong to one AZ aggregate at a time."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Arbitrary Aggregates"},{"line_number":177,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"30597382_935ed597","line":174,"updated":"2026-07-08 17:43:01.000000000","message":"According to https://docs.openstack.org/nova/latest/admin/availability-zones.html switching zones is not possible while there are instances on the host. So there should be a warning here accordingly and possibly a precheck action that verifies this? Or even make this a dedicated action that is not executed during a normal deploy?","commit_id":"fb0d830a98bd1e1d0f6fefdac82cd82de001be8e"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"3e84e9174591ace4a855d5ca2f48af0883daaeda","unresolved":true,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"When a host moves from one AZ to another, Kolla Ansible removes it from the"},{"line_number":173,"context_line":"old aggregate before adding it to the new one, avoiding Nova\u0027s restriction that"},{"line_number":174,"context_line":"a host may only belong to one AZ aggregate at a time."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Arbitrary Aggregates"},{"line_number":177,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9df3c982_d1ec850d","line":174,"in_reply_to":"30597382_935ed597","updated":"2026-07-09 08:14:49.000000000","message":"interesting, I didn\u0027t see this, and it\u0027s indeed quite a big requirement. \n\nI\u0027ll check if we can have a check or some doc entry (or both) for it.","commit_id":"fb0d830a98bd1e1d0f6fefdac82cd82de001be8e"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"d0250d3be3281febbcc7a46ee1f22142c39ed83e","unresolved":true,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"When a host moves from one AZ to another, Kolla Ansible removes it from the"},{"line_number":173,"context_line":"old aggregate before adding it to the new one, avoiding Nova\u0027s restriction that"},{"line_number":174,"context_line":"a host may only belong to one AZ aggregate at a time."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Arbitrary Aggregates"},{"line_number":177,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"cd7c2009_2abf86ae","line":174,"in_reply_to":"9df3c982_d1ec850d","updated":"2026-07-15 08:36:49.000000000","message":"I added a warning entry in the documentation for it. reconfigure will already fail if people try to do this and nova raises a pretty specific error when you try to change AZ while instances are still scheduled, so I\u0027m not sure we should be checking it also on k-a\u0027s side ?","commit_id":"fb0d830a98bd1e1d0f6fefdac82cd82de001be8e"}],"kolla_ansible/tests/unit/test_nova_filters.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15eceac36bd3a8531c830cdf4c44a2b9d7a440ff","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def test_nova_az_host_map_basic(self):"},{"line_number":173,"context_line":"        hostvars \u003d self._make_hostvars(["},{"line_number":174,"context_line":"            {\u0027name\u0027: \u0027compute01\u0027, \u0027nodename\u0027: \u0027compute01.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":175,"context_line":"            {\u0027name\u0027: \u0027compute02\u0027, \u0027nodename\u0027: \u0027compute02.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":176,"context_line":"            {\u0027name\u0027: \u0027compute03\u0027, \u0027nodename\u0027: \u0027compute03.example.com\u0027, \u0027az\u0027: \u0027az-2\u0027},"},{"line_number":177,"context_line":"        ])"}],"source_content_type":"text/x-python","patch_set":4,"id":"096f08a9_0ecc038c","line":174,"updated":"2026-07-03 23:55:17.000000000","message":"linters: E501 line too long (85 \u003e 79 characters)","commit_id":"d46dec65eebdda68b92dc149165134292571d79e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15eceac36bd3a8531c830cdf4c44a2b9d7a440ff","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    def test_nova_az_host_map_basic(self):"},{"line_number":173,"context_line":"        hostvars \u003d self._make_hostvars(["},{"line_number":174,"context_line":"            {\u0027name\u0027: \u0027compute01\u0027, \u0027nodename\u0027: \u0027compute01.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":175,"context_line":"            {\u0027name\u0027: \u0027compute02\u0027, \u0027nodename\u0027: \u0027compute02.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":176,"context_line":"            {\u0027name\u0027: \u0027compute03\u0027, \u0027nodename\u0027: \u0027compute03.example.com\u0027, \u0027az\u0027: \u0027az-2\u0027},"},{"line_number":177,"context_line":"        ])"}],"source_content_type":"text/x-python","patch_set":4,"id":"474d5a6d_99d72488","line":174,"updated":"2026-07-03 23:55:17.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"d46dec65eebdda68b92dc149165134292571d79e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15eceac36bd3a8531c830cdf4c44a2b9d7a440ff","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    def test_nova_az_host_map_basic(self):"},{"line_number":173,"context_line":"        hostvars \u003d self._make_hostvars(["},{"line_number":174,"context_line":"            {\u0027name\u0027: \u0027compute01\u0027, \u0027nodename\u0027: \u0027compute01.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":175,"context_line":"            {\u0027name\u0027: \u0027compute02\u0027, \u0027nodename\u0027: \u0027compute02.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":176,"context_line":"            {\u0027name\u0027: \u0027compute03\u0027, \u0027nodename\u0027: \u0027compute03.example.com\u0027, \u0027az\u0027: \u0027az-2\u0027},"},{"line_number":177,"context_line":"        ])"},{"line_number":178,"context_line":"        result \u003d filters.nova_az_host_map(hostvars, list(hostvars))"}],"source_content_type":"text/x-python","patch_set":4,"id":"17f60323_64baf6ff","line":175,"updated":"2026-07-03 23:55:17.000000000","message":"linters: E501 line too long (85 \u003e 79 characters)","commit_id":"d46dec65eebdda68b92dc149165134292571d79e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15eceac36bd3a8531c830cdf4c44a2b9d7a440ff","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    def test_nova_az_host_map_basic(self):"},{"line_number":173,"context_line":"        hostvars \u003d self._make_hostvars(["},{"line_number":174,"context_line":"            {\u0027name\u0027: \u0027compute01\u0027, \u0027nodename\u0027: \u0027compute01.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":175,"context_line":"            {\u0027name\u0027: \u0027compute02\u0027, \u0027nodename\u0027: \u0027compute02.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":176,"context_line":"            {\u0027name\u0027: \u0027compute03\u0027, \u0027nodename\u0027: \u0027compute03.example.com\u0027, \u0027az\u0027: \u0027az-2\u0027},"},{"line_number":177,"context_line":"        ])"},{"line_number":178,"context_line":"        result \u003d filters.nova_az_host_map(hostvars, list(hostvars))"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a55d926_33b29014","line":175,"updated":"2026-07-03 23:55:17.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"d46dec65eebdda68b92dc149165134292571d79e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15eceac36bd3a8531c830cdf4c44a2b9d7a440ff","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        hostvars \u003d self._make_hostvars(["},{"line_number":174,"context_line":"            {\u0027name\u0027: \u0027compute01\u0027, \u0027nodename\u0027: \u0027compute01.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":175,"context_line":"            {\u0027name\u0027: \u0027compute02\u0027, \u0027nodename\u0027: \u0027compute02.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":176,"context_line":"            {\u0027name\u0027: \u0027compute03\u0027, \u0027nodename\u0027: \u0027compute03.example.com\u0027, \u0027az\u0027: \u0027az-2\u0027},"},{"line_number":177,"context_line":"        ])"},{"line_number":178,"context_line":"        result \u003d filters.nova_az_host_map(hostvars, list(hostvars))"},{"line_number":179,"context_line":"        self.assertEqual(result, {"}],"source_content_type":"text/x-python","patch_set":4,"id":"4658f21f_2fa43ffe","line":176,"updated":"2026-07-03 23:55:17.000000000","message":"linters: E501 line too long (85 \u003e 79 characters)","commit_id":"d46dec65eebdda68b92dc149165134292571d79e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15eceac36bd3a8531c830cdf4c44a2b9d7a440ff","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        hostvars \u003d self._make_hostvars(["},{"line_number":174,"context_line":"            {\u0027name\u0027: \u0027compute01\u0027, \u0027nodename\u0027: \u0027compute01.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":175,"context_line":"            {\u0027name\u0027: \u0027compute02\u0027, \u0027nodename\u0027: \u0027compute02.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":176,"context_line":"            {\u0027name\u0027: \u0027compute03\u0027, \u0027nodename\u0027: \u0027compute03.example.com\u0027, \u0027az\u0027: \u0027az-2\u0027},"},{"line_number":177,"context_line":"        ])"},{"line_number":178,"context_line":"        result \u003d filters.nova_az_host_map(hostvars, list(hostvars))"},{"line_number":179,"context_line":"        self.assertEqual(result, {"}],"source_content_type":"text/x-python","patch_set":4,"id":"a7dada83_924af1ce","line":176,"updated":"2026-07-03 23:55:17.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"d46dec65eebdda68b92dc149165134292571d79e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15eceac36bd3a8531c830cdf4c44a2b9d7a440ff","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def test_nova_az_host_map_skips_unset(self):"},{"line_number":185,"context_line":"        hostvars \u003d self._make_hostvars(["},{"line_number":186,"context_line":"            {\u0027name\u0027: \u0027compute01\u0027, \u0027nodename\u0027: \u0027compute01.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":187,"context_line":"            {\u0027name\u0027: \u0027compute02\u0027, \u0027nodename\u0027: \u0027compute02.example.com\u0027},"},{"line_number":188,"context_line":"        ])"},{"line_number":189,"context_line":"        result \u003d filters.nova_az_host_map(hostvars, list(hostvars))"}],"source_content_type":"text/x-python","patch_set":4,"id":"75cbe686_6d306622","line":186,"updated":"2026-07-03 23:55:17.000000000","message":"linters: E501 line too long (85 \u003e 79 characters)","commit_id":"d46dec65eebdda68b92dc149165134292571d79e"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"15eceac36bd3a8531c830cdf4c44a2b9d7a440ff","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    def test_nova_az_host_map_skips_unset(self):"},{"line_number":185,"context_line":"        hostvars \u003d self._make_hostvars(["},{"line_number":186,"context_line":"            {\u0027name\u0027: \u0027compute01\u0027, \u0027nodename\u0027: \u0027compute01.example.com\u0027, \u0027az\u0027: \u0027az-1\u0027},"},{"line_number":187,"context_line":"            {\u0027name\u0027: \u0027compute02\u0027, \u0027nodename\u0027: \u0027compute02.example.com\u0027},"},{"line_number":188,"context_line":"        ])"},{"line_number":189,"context_line":"        result \u003d filters.nova_az_host_map(hostvars, list(hostvars))"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffb2985a_2a8c9c16","line":186,"updated":"2026-07-03 23:55:17.000000000","message":"pep8: E501 line too long (85 \u003e 79 characters)","commit_id":"d46dec65eebdda68b92dc149165134292571d79e"}]}
