)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"29aca47975ce3f91bf7668702419666dde49d980","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8203d2fb_c2d225c5","updated":"2025-10-27 03:32:27.000000000","message":"LGTM.\nI\u0027m seeing if I can improve tests in a subsequent commit, this is good to go IMHO.","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"f470e849d82fbe61d23ac8b869d22badfcf98d77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ae53bf40_d04a2285","updated":"2025-10-29 14:16:23.000000000","message":"did more testing","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"d1b64b98aa0122b4426f896c1066e0867984ce82","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f4e736a0_f75e532a","updated":"2026-05-15 02:08:22.000000000","message":"Keen to get this in, I\u0027ve updated the tests addressing Jake\u0027s comments","commit_id":"400685aa55a129a1846eba4ecf11769900600d79"},{"author":{"_account_id":3031,"name":"Sam Morrison","email":"sorrison@gmail.com","username":"sorrison"},"change_message_id":"04e321ab3846106fcfc165bf9906285d801d7918","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"264824eb_7737edcc","updated":"2026-05-19 06:05:39.000000000","message":"Tested and this fixes the issue for us","commit_id":"34283af5be6aec6f408becceb870f766b63d450e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"e25609abd9598bb51fcb88ac2e47bbc1c91b0a26","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"49138410_3fcc2886","updated":"2026-05-15 05:40:47.000000000","message":"recheck magnum-cluster-api-cilium unrelated failure","commit_id":"34283af5be6aec6f408becceb870f766b63d450e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"634e6aff1cbcf6e4ad0640c226bb70c46c582867","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"24158156_b9cbe4dd","in_reply_to":"0c9087ea_250d4b1e","updated":"2026-05-28 08:54:32.000000000","message":"Done","commit_id":"34283af5be6aec6f408becceb870f766b63d450e"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"055b9842a07b57e2e507425c3392bcb9ae9af077","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0c9087ea_250d4b1e","in_reply_to":"264824eb_7737edcc","updated":"2026-05-28 08:53:11.000000000","message":"Sam - can you resolve Jake\u0027s comments?","commit_id":"34283af5be6aec6f408becceb870f766b63d450e"}],"magnum/tests/unit/api/controllers/v1/test_cluster.py":[{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"f470e849d82fbe61d23ac8b869d22badfcf98d77","unresolved":true,"context_lines":[{"line_number":1094,"context_line":"        cluster, timeout \u003d self.mock_cluster_create.call_args"},{"line_number":1095,"context_line":"        self.assertEqual(cluster_labels, cluster[0].labels)"},{"line_number":1096,"context_line":""},{"line_number":1097,"context_line":"    def test_create_cluster_with_merge_labels(self):"},{"line_number":1098,"context_line":"        ct_labels \u003d {\u0027label1\u0027: \u0027value1\u0027, \u0027label2\u0027: \u0027value2\u0027}"},{"line_number":1099,"context_line":"        self.cluster_template.labels \u003d ct_labels.copy()"},{"line_number":1100,"context_line":"        self.cluster_template.save()"}],"source_content_type":"text/x-python","patch_set":1,"id":"f87795df_21302c37","line":1097,"range":{"start_line":1097,"start_character":8,"end_line":1097,"end_character":45},"updated":"2025-10-29 14:16:23.000000000","message":"I couldn\u0027t get this test to fail when I use this new tests on the master branch. Ideally they should fail to reflect that master has a bug. Can you confirm my findings?","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"634e6aff1cbcf6e4ad0640c226bb70c46c582867","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"        cluster, timeout \u003d self.mock_cluster_create.call_args"},{"line_number":1095,"context_line":"        self.assertEqual(cluster_labels, cluster[0].labels)"},{"line_number":1096,"context_line":""},{"line_number":1097,"context_line":"    def test_create_cluster_with_merge_labels(self):"},{"line_number":1098,"context_line":"        ct_labels \u003d {\u0027label1\u0027: \u0027value1\u0027, \u0027label2\u0027: \u0027value2\u0027}"},{"line_number":1099,"context_line":"        self.cluster_template.labels \u003d ct_labels.copy()"},{"line_number":1100,"context_line":"        self.cluster_template.save()"}],"source_content_type":"text/x-python","patch_set":1,"id":"27cd77ed_5abd32d3","line":1097,"range":{"start_line":1097,"start_character":8,"end_line":1097,"end_character":45},"in_reply_to":"f87795df_21302c37","updated":"2026-05-28 08:54:32.000000000","message":"Done","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"f470e849d82fbe61d23ac8b869d22badfcf98d77","unresolved":true,"context_lines":[{"line_number":1095,"context_line":"        self.assertEqual(cluster_labels, cluster[0].labels)"},{"line_number":1096,"context_line":""},{"line_number":1097,"context_line":"    def test_create_cluster_with_merge_labels(self):"},{"line_number":1098,"context_line":"        ct_labels \u003d {\u0027label1\u0027: \u0027value1\u0027, \u0027label2\u0027: \u0027value2\u0027}"},{"line_number":1099,"context_line":"        self.cluster_template.labels \u003d ct_labels.copy()"},{"line_number":1100,"context_line":"        self.cluster_template.save()"},{"line_number":1101,"context_line":"        cluster_labels \u003d {\u0027label2\u0027: \u0027value3\u0027, \u0027label4\u0027: \u0027value4\u0027}"},{"line_number":1102,"context_line":"        bdict \u003d apiutils.cluster_post_data(labels\u003dcluster_labels,"},{"line_number":1103,"context_line":"                                           merge_labels\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"03595b22_e7d276d8","line":1100,"range":{"start_line":1098,"start_character":0,"end_line":1100,"end_character":36},"updated":"2025-10-29 14:16:23.000000000","message":"as `self.cluster_template.labels` already has a value, we don\u0027t not need to set it.\ninstead, it will be good to grab the current value to ensure it isn\u0027t changed\n`orig_ct_labels \u003d self.cluster_template.labels.copy()`","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"634e6aff1cbcf6e4ad0640c226bb70c46c582867","unresolved":false,"context_lines":[{"line_number":1095,"context_line":"        self.assertEqual(cluster_labels, cluster[0].labels)"},{"line_number":1096,"context_line":""},{"line_number":1097,"context_line":"    def test_create_cluster_with_merge_labels(self):"},{"line_number":1098,"context_line":"        ct_labels \u003d {\u0027label1\u0027: \u0027value1\u0027, \u0027label2\u0027: \u0027value2\u0027}"},{"line_number":1099,"context_line":"        self.cluster_template.labels \u003d ct_labels.copy()"},{"line_number":1100,"context_line":"        self.cluster_template.save()"},{"line_number":1101,"context_line":"        cluster_labels \u003d {\u0027label2\u0027: \u0027value3\u0027, \u0027label4\u0027: \u0027value4\u0027}"},{"line_number":1102,"context_line":"        bdict \u003d apiutils.cluster_post_data(labels\u003dcluster_labels,"},{"line_number":1103,"context_line":"                                           merge_labels\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"4b937fa8_d5443f83","line":1100,"range":{"start_line":1098,"start_character":0,"end_line":1100,"end_character":36},"in_reply_to":"03595b22_e7d276d8","updated":"2026-05-28 08:54:32.000000000","message":"Done","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"f470e849d82fbe61d23ac8b869d22badfcf98d77","unresolved":true,"context_lines":[{"line_number":1105,"context_line":"        self.assertEqual(\u0027application/json\u0027, response.content_type)"},{"line_number":1106,"context_line":"        self.assertEqual(202, response.status_int)"},{"line_number":1107,"context_line":"        cluster, timeout \u003d self.mock_cluster_create.call_args"},{"line_number":1108,"context_line":"        expected \u003d self.cluster_template.labels.copy()"},{"line_number":1109,"context_line":"        expected.update(cluster_labels)"},{"line_number":1110,"context_line":"        self.assertEqual(expected, cluster[0].labels)"},{"line_number":1111,"context_line":"        self.assertEqual(self.cluster_template.labels, ct_labels)"}],"source_content_type":"text/x-python","patch_set":1,"id":"d8de653b_63e6d09b","line":1108,"range":{"start_line":1108,"start_character":19,"end_line":1108,"end_character":47},"updated":"2025-10-29 14:16:23.000000000","message":"this already has the value `{\u0027key1\u0027: \u0027val1\u0027, \u0027key2\u0027: \u0027val2\u0027}` as a default CT value (without setting it explicitly above)","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"634e6aff1cbcf6e4ad0640c226bb70c46c582867","unresolved":false,"context_lines":[{"line_number":1105,"context_line":"        self.assertEqual(\u0027application/json\u0027, response.content_type)"},{"line_number":1106,"context_line":"        self.assertEqual(202, response.status_int)"},{"line_number":1107,"context_line":"        cluster, timeout \u003d self.mock_cluster_create.call_args"},{"line_number":1108,"context_line":"        expected \u003d self.cluster_template.labels.copy()"},{"line_number":1109,"context_line":"        expected.update(cluster_labels)"},{"line_number":1110,"context_line":"        self.assertEqual(expected, cluster[0].labels)"},{"line_number":1111,"context_line":"        self.assertEqual(self.cluster_template.labels, ct_labels)"}],"source_content_type":"text/x-python","patch_set":1,"id":"e594668d_f717c3c1","line":1108,"range":{"start_line":1108,"start_character":19,"end_line":1108,"end_character":47},"in_reply_to":"d8de653b_63e6d09b","updated":"2026-05-28 08:54:32.000000000","message":"Done","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"f470e849d82fbe61d23ac8b869d22badfcf98d77","unresolved":true,"context_lines":[{"line_number":1108,"context_line":"        expected \u003d self.cluster_template.labels.copy()"},{"line_number":1109,"context_line":"        expected.update(cluster_labels)"},{"line_number":1110,"context_line":"        self.assertEqual(expected, cluster[0].labels)"},{"line_number":1111,"context_line":"        self.assertEqual(self.cluster_template.labels, ct_labels)"},{"line_number":1112,"context_line":""},{"line_number":1113,"context_line":"    def test_create_cluster_with_merge_labels_no_labels(self):"},{"line_number":1114,"context_line":"        self.cluster_template.labels \u003d {\u0027label1\u0027: \u0027value1\u0027, \u0027label2\u0027: \u0027value2\u0027}"}],"source_content_type":"text/x-python","patch_set":1,"id":"788de091_48c70013","line":1111,"range":{"start_line":1111,"start_character":0,"end_line":1111,"end_character":2},"updated":"2025-10-29 14:16:23.000000000","message":"this can be changed to `self.assertEqual(orig_ct_labels, self.cluster_template.labels)` to make sure `self.cluster_template.labels` hasn\u0027t changed","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"634e6aff1cbcf6e4ad0640c226bb70c46c582867","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"        expected \u003d self.cluster_template.labels.copy()"},{"line_number":1109,"context_line":"        expected.update(cluster_labels)"},{"line_number":1110,"context_line":"        self.assertEqual(expected, cluster[0].labels)"},{"line_number":1111,"context_line":"        self.assertEqual(self.cluster_template.labels, ct_labels)"},{"line_number":1112,"context_line":""},{"line_number":1113,"context_line":"    def test_create_cluster_with_merge_labels_no_labels(self):"},{"line_number":1114,"context_line":"        self.cluster_template.labels \u003d {\u0027label1\u0027: \u0027value1\u0027, \u0027label2\u0027: \u0027value2\u0027}"}],"source_content_type":"text/x-python","patch_set":1,"id":"493d6cef_1ae18b12","line":1111,"range":{"start_line":1111,"start_character":0,"end_line":1111,"end_character":2},"in_reply_to":"788de091_48c70013","updated":"2026-05-28 08:54:32.000000000","message":"Done","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"0d1fed9073721946bf85e1192b1b0af89992f219","unresolved":true,"context_lines":[{"line_number":1098,"context_line":"        self.assertEqual(\u0027application/json\u0027, response.content_type)"},{"line_number":1099,"context_line":"        self.assertEqual(202, response.status_int)"},{"line_number":1100,"context_line":"        cluster \u003d self.mock_cluster_create.call_args.args[0]"},{"line_number":1101,"context_line":"        expected \u003d orig_ct_labels.copy()"},{"line_number":1102,"context_line":"        expected.update(cluster_labels)"},{"line_number":1103,"context_line":"        self.assertEqual(expected, cluster.labels)"},{"line_number":1104,"context_line":"        self.assertEqual(orig_ct_labels, self.cluster_template.labels)"}],"source_content_type":"text/x-python","patch_set":5,"id":"75680b1a_1aab9144","line":1101,"range":{"start_line":1101,"start_character":19,"end_line":1101,"end_character":40},"updated":"2026-05-15 02:25:28.000000000","message":"NIT: I feel like, for clarity, this should be\n```\n expected \u003d self.cluster_template.labels.copy()\n expected.update(cluster_labels)\n```\nwhich makes it clear we are merging a copy of CT label and not a copy of a copy.","commit_id":"400685aa55a129a1846eba4ecf11769900600d79"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"634e6aff1cbcf6e4ad0640c226bb70c46c582867","unresolved":false,"context_lines":[{"line_number":1098,"context_line":"        self.assertEqual(\u0027application/json\u0027, response.content_type)"},{"line_number":1099,"context_line":"        self.assertEqual(202, response.status_int)"},{"line_number":1100,"context_line":"        cluster \u003d self.mock_cluster_create.call_args.args[0]"},{"line_number":1101,"context_line":"        expected \u003d orig_ct_labels.copy()"},{"line_number":1102,"context_line":"        expected.update(cluster_labels)"},{"line_number":1103,"context_line":"        self.assertEqual(expected, cluster.labels)"},{"line_number":1104,"context_line":"        self.assertEqual(orig_ct_labels, self.cluster_template.labels)"}],"source_content_type":"text/x-python","patch_set":5,"id":"47aac500_27317f72","line":1101,"range":{"start_line":1101,"start_character":19,"end_line":1101,"end_character":40},"in_reply_to":"75680b1a_1aab9144","updated":"2026-05-28 08:54:32.000000000","message":"Done","commit_id":"400685aa55a129a1846eba4ecf11769900600d79"}],"magnum/tests/unit/api/controllers/v1/test_nodegroup.py":[{"author":{"_account_id":8064,"name":"Jake Yip","email":"jake.yip@ardc.edu.au","username":"jake"},"change_message_id":"f470e849d82fbe61d23ac8b869d22badfcf98d77","unresolved":true,"context_lines":[{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    def test_create_ng_with_labels(self):"},{"line_number":463,"context_line":"        cluster_labels \u003d {\u0027label1\u0027: \u0027value1\u0027, \u0027label2\u0027: \u0027value2\u0027}"},{"line_number":464,"context_line":"        self.cluster.labels \u003d cluster_labels.copy()"},{"line_number":465,"context_line":"        self.cluster.save()"},{"line_number":466,"context_line":"        ng_labels \u003d {\u0027label3\u0027: \u0027value3\u0027}"},{"line_number":467,"context_line":"        ng_dict \u003d apiutils.nodegroup_post_data(labels\u003dng_labels)"}],"source_content_type":"text/x-python","patch_set":1,"id":"11679dbb_b04cd955","line":464,"range":{"start_line":464,"start_character":8,"end_line":464,"end_character":27},"updated":"2025-10-29 14:16:23.000000000","message":"I took a deeper look at the tests and found it weird. `self.cluster.labels` is always `{}` because it doesn\u0027t pull labels from the `self.cluster_template.labels` at all. [1]. That may be why they need to set `self.cluster.labels` for each test.\n\n[1]: https://opendev.org/openstack/magnum/src/commit/e0531368b205abdc21774da7340b991ee703cd59/magnum/tests/unit/objects/utils.py#L83-L86","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"634e6aff1cbcf6e4ad0640c226bb70c46c582867","unresolved":false,"context_lines":[{"line_number":461,"context_line":""},{"line_number":462,"context_line":"    def test_create_ng_with_labels(self):"},{"line_number":463,"context_line":"        cluster_labels \u003d {\u0027label1\u0027: \u0027value1\u0027, \u0027label2\u0027: \u0027value2\u0027}"},{"line_number":464,"context_line":"        self.cluster.labels \u003d cluster_labels.copy()"},{"line_number":465,"context_line":"        self.cluster.save()"},{"line_number":466,"context_line":"        ng_labels \u003d {\u0027label3\u0027: \u0027value3\u0027}"},{"line_number":467,"context_line":"        ng_dict \u003d apiutils.nodegroup_post_data(labels\u003dng_labels)"}],"source_content_type":"text/x-python","patch_set":1,"id":"330f587a_cc2ff655","line":464,"range":{"start_line":464,"start_character":8,"end_line":464,"end_character":27},"in_reply_to":"11679dbb_b04cd955","updated":"2026-05-28 08:54:32.000000000","message":"Done","commit_id":"61173da46a46f53226442392ae4b4da2983820f5"}]}
