)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":true,"context_lines":[{"line_number":21,"context_line":"vcpus of the hypervisor"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I2d4398fe5822e0bf35b95fc1a77d1e2553327e8c"},{"line_number":24,"context_line":"Closes: https://bugs.launchpad.net/watcher-tempest-plugin/+bug/2115733"},{"line_number":25,"context_line":"Signed-off-by: morenod \u003cdsanzmor@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"a1924815_ddd320ad","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":70},"updated":"2025-08-13 18:12:41.000000000","message":"It should be Closes-Bug: #2115733\n\nthat\u0027s why the launchpad bot didn\u0027t update the bug with info from this patch\nmore info here: https://docs.opendev.org/opendev/infra-manual/latest/developers.html#working-on-bugs","commit_id":"b00e6001305c563d6fd5a046a5ddcebf152dd723"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"3ca64424ef7f7e81a94b52f8993e1d39b09f421d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"65d38e7c_08f37e3a","updated":"2025-07-01 10:26:12.000000000","message":"check experimental","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"caf00fd8c2a1e0fec605408f90d4a190a89b5815","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a54d6573_556ab51a","updated":"2025-07-01 08:55:31.000000000","message":"check experimental","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"b34c87213709c2b34e61d75c7f3a6e12d824251d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"95a2fb78_4f102ded","updated":"2025-07-02 06:47:03.000000000","message":"recheck","commit_id":"b0365602059338fff406319149126b7229c0a57f"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"8c738a8a4cd210785acf2e287721771ec770fa4b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"0e16e0d4_9e91c4ca","updated":"2025-07-03 07:43:23.000000000","message":"check experimental","commit_id":"4ce606b6d57d78ece92f08fd95d23322f0824e62"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"0851c64708f0d5dab24030366160c8e70e10192c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2cc8ed7b_ea8e2851","updated":"2025-07-16 09:51:38.000000000","message":"check experimental","commit_id":"4ce606b6d57d78ece92f08fd95d23322f0824e62"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"ed473a43c5a2e895af5a8506d304b505cf7fb3fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3a74c463_0b74b052","updated":"2025-07-02 09:42:26.000000000","message":"check experimental","commit_id":"4ce606b6d57d78ece92f08fd95d23322f0824e62"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"bd2668879ad74a8fa3bacc537d308e7456267398","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3c10ba76_a2d005ab","updated":"2025-07-03 15:05:21.000000000","message":"check experimental","commit_id":"4ce606b6d57d78ece92f08fd95d23322f0824e62"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"bd29a422b098432b400b95119bd8aea742efbc6d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"779328a2_96ff48f9","updated":"2025-07-04 07:11:11.000000000","message":"check experimental","commit_id":"4ce606b6d57d78ece92f08fd95d23322f0824e62"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"d830415c4426ff8a47c0812363d4ce57f17fb900","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"828fc614_dcb085ee","updated":"2025-07-02 09:42:19.000000000","message":"recheck","commit_id":"4ce606b6d57d78ece92f08fd95d23322f0824e62"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"878cc45e25381a5bbb8f24c198ac8ee9f3b93de3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"e2988458_fea60caa","updated":"2025-07-16 09:51:31.000000000","message":"recheck","commit_id":"4ce606b6d57d78ece92f08fd95d23322f0824e62"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"9987a3995918fa40f3f2c85d33e5b533588222f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"0c5e73b7_9af77443","updated":"2025-07-17 09:29:40.000000000","message":"recheck","commit_id":"dd2fd5173c1c71359f61c3842595eaaea3e1ca0e"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"cccb15bd3c5049a3ea63561e274fd9d099f67b1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d17f4779_7b0e1309","updated":"2025-07-18 09:31:37.000000000","message":"recheck","commit_id":"061fe3e44cffe8a4ee39858e0f21553588eca308"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"367fac50e9bd112a2cd0cc42d41926119e4c003e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"177b6197_ff832ee4","updated":"2025-07-23 10:10:04.000000000","message":"recheck","commit_id":"a6ab80783daf528c7cc1db0fbe64a3e697cf693a"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"18230a5c0afb00687bf3b814333e84e59dfbea8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"5bda9a50_e2b8d3ca","updated":"2025-07-23 08:04:12.000000000","message":"recheck","commit_id":"a6ab80783daf528c7cc1db0fbe64a3e697cf693a"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"d8b426459005410e6ed43e839725bce6dd97d0f7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"6f67648d_afbcce7a","updated":"2025-07-22 15:09:38.000000000","message":"recheck","commit_id":"a6ab80783daf528c7cc1db0fbe64a3e697cf693a"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"985888a9869199da23a87c19e97f6e8e01b13fe9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"8e8d1cbf_63d6f14c","updated":"2025-07-21 13:17:25.000000000","message":"recheck","commit_id":"a6ab80783daf528c7cc1db0fbe64a3e697cf693a"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"46c45cac6aa5cfac4589840e91bb2471992dd5cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"9bb7c339_3ecb853f","updated":"2025-07-22 13:48:17.000000000","message":"recheck","commit_id":"a6ab80783daf528c7cc1db0fbe64a3e697cf693a"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"38b1a259f287d8d4338bc548dd7b5295cbd069ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"a53f35c1_8d72f8c9","updated":"2025-07-22 08:01:51.000000000","message":"recheck","commit_id":"a6ab80783daf528c7cc1db0fbe64a3e697cf693a"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"ab7387fd5655c427e14a6ebe54196677e00613da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"869bd398_efb848c1","updated":"2025-07-24 08:43:24.000000000","message":"recheck","commit_id":"156da45f869327772c0446d618cba97a33eccb46"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"18d4182088529de5e8c09d963df05af3f5ae153e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"a9b182f0_c8cd23f8","updated":"2025-07-24 11:28:45.000000000","message":"recheck","commit_id":"bc419c6d9c287628d2d81b1bc8294b55e9e3adf3"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"c24c47f425167f2fbfd3221202db42a181ddbe7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"4546379a_ab29f612","updated":"2025-07-29 11:58:17.000000000","message":"check experimental","commit_id":"8a05f7ee277d6152836b4fdfe568ae60c73de209"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"3c7ce97e9433f124b7ad36648193808aee649d23","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"99e06499_e0538ab1","updated":"2025-07-29 14:30:20.000000000","message":"check experimental","commit_id":"8a05f7ee277d6152836b4fdfe568ae60c73de209"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"8a787e6ae9b7a46b83db2dc89ef7ebc28f7f3fd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"362bef04_c3d4c08f","updated":"2025-07-29 11:58:10.000000000","message":"recheck","commit_id":"8a05f7ee277d6152836b4fdfe568ae60c73de209"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"1aabe6d03faa923ab2c8dccfad24462c45707231","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"e20c5c6c_08615b52","updated":"2025-07-29 14:30:13.000000000","message":"recheck","commit_id":"8a05f7ee277d6152836b4fdfe568ae60c73de209"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"b4e346403130cb2fc37cab4278c327a4f3923653","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"15c083e3_fa89ad72","updated":"2025-08-04 12:32:50.000000000","message":"check experimental","commit_id":"6bd2e3d8cdb6ab59f1d967e4b359c40ecde23905"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"cab5c73e4b5ded1a0aaf91779477c2739beaf9bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"61532c05_752be287","updated":"2025-08-04 09:39:40.000000000","message":"check experimental","commit_id":"6bd2e3d8cdb6ab59f1d967e4b359c40ecde23905"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"7f876db16ac9db255a581dc2f80193a0645888f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"9b25c2a1_90e0fd36","updated":"2025-08-04 13:56:15.000000000","message":"check experimental","commit_id":"6bd2e3d8cdb6ab59f1d967e4b359c40ecde23905"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"1e24e693aec46bbd3daf701145fca201bae9ee41","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"76c63a69_9bb6c54b","updated":"2025-08-04 07:28:16.000000000","message":"recheck","commit_id":"6bd2e3d8cdb6ab59f1d967e4b359c40ecde23905"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"d3bbddce8e4df002ccb19e3e84899f5652caa8ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"b46018b3_e6c62295","updated":"2025-08-01 09:33:12.000000000","message":"recheck","commit_id":"6bd2e3d8cdb6ab59f1d967e4b359c40ecde23905"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"97fa43419401b2af6676890ece11bc17ac42d636","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"a847311d_d5fe135a","updated":"2025-08-05 07:48:48.000000000","message":"check experimental","commit_id":"4ae1626938378e6644a74d7002b070982064ab98"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"2dc81d26b32526be1e638ed0e4db90ec9318c8d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"e9a0861c_6968b669","updated":"2025-08-05 09:56:43.000000000","message":"recheck","commit_id":"4ae1626938378e6644a74d7002b070982064ab98"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d197ce834119468955bd32b04e11ce3ae2471c94","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":25,"id":"4f69f778_2540652c","updated":"2025-08-13 08:56:00.000000000","message":"Overall looks good, left few suggestions and questions.","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"0dc57d2e_47309c8a","updated":"2025-08-13 18:12:41.000000000","message":"There are some nits, but looks in a good shape. We can agree with merging it if nobody disagree","commit_id":"b00e6001305c563d6fd5a046a5ddcebf152dd723"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"6e80cb384e5375ef64bc0491f90a1f5b604589bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"6b9770cd_b50441d8","updated":"2025-08-18 06:25:18.000000000","message":"Thank you for addressing all the comments, looks good now.","commit_id":"74b6c165ddf96445f3aae59491f68bc2f5dfb189"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"067a994d90911826e6e29dc49c2f8d87d0e453c7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"63c6b364_dfe024f0","in_reply_to":"6b9770cd_b50441d8","updated":"2025-08-21 11:16:54.000000000","message":"Not all were addressed, but we can proceed since the fix is needed.","commit_id":"74b6c165ddf96445f3aae59491f68bc2f5dfb189"}],"watcher_tempest_plugin/tests/scenario/base.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b28b1191e6102df7299a48ce86b569768b51bced","unresolved":true,"context_lines":[{"line_number":104,"context_line":"        cls.gnocchi \u003d cls.mgr.gn_client"},{"line_number":105,"context_line":"        cls.placement_client \u003d cls.mgr.placement_client"},{"line_number":106,"context_line":"        cls.prometheus_client \u003d cls.mgr.prometheus_client"},{"line_number":107,"context_line":"        cls.flavors_client \u003d cls.mgr.flavors_client"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def setUp(self):"},{"line_number":110,"context_line":"        super(BaseInfraOptimScenarioTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"58e39818_56bcd40e","line":107,"updated":"2025-07-01 12:50:36.000000000","message":"while this might be the same thing you shoudl be using \n\nhttps://github.com/openstack/tempest/blob/master/tempest/lib/services/compute/flavors_client.py#L33\n\none thin to keep in min dis that creating a flavor requirs admin access\n\nso this need to be an admin clinte instance\n\nif we look at the comptue tempest api test we see the flavor clinet is defiend like this\n\n\ncls.admin_flavors_client \u003d cls.os_admin.flavors_client\nhttps://github.com/openstack/tempest/blob/master/tempest/api/compute/base.py#L690","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"8a0b3aea93b2e0c492705d740ec58f2dd182ba4f","unresolved":true,"context_lines":[{"line_number":104,"context_line":"        cls.gnocchi \u003d cls.mgr.gn_client"},{"line_number":105,"context_line":"        cls.placement_client \u003d cls.mgr.placement_client"},{"line_number":106,"context_line":"        cls.prometheus_client \u003d cls.mgr.prometheus_client"},{"line_number":107,"context_line":"        cls.flavors_client \u003d cls.mgr.flavors_client"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def setUp(self):"},{"line_number":110,"context_line":"        super(BaseInfraOptimScenarioTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa608de_2b5859fa","line":107,"in_reply_to":"58e39818_56bcd40e","updated":"2025-08-05 09:14:54.000000000","message":"yes, it is the same behavior, it it just we are using different names, all the admin client is initialized as cls.mgr","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b28b1191e6102df7299a48ce86b569768b51bced","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            is_public\u003dTrue)[\u0027flavor\u0027][\u0027id\u0027]"},{"line_number":293,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":294,"context_line":"                        self.flavors_client.delete_flavor, flavor_id)"},{"line_number":295,"context_line":"        return flavor_id"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def _create_one_instance_per_host(self, flavor\u003dNone, run_command\u003dNone):"},{"line_number":298,"context_line":"        \"\"\"Create one instance per compute node"}],"source_content_type":"text/x-python","patch_set":2,"id":"aec25ac2_b6c71cdc","line":295,"updated":"2025-07-01 12:50:36.000000000","message":"assuming you are using the FlavorsClient form tempest then this is also correct\n\ni generally expect tempst to also handel the clean up but in this case it does not so you have to do it your self +1","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":true,"context_lines":[{"line_number":292,"context_line":"            is_public\u003dTrue)[\u0027flavor\u0027][\u0027id\u0027]"},{"line_number":293,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":294,"context_line":"                        self.flavors_client.delete_flavor, flavor_id)"},{"line_number":295,"context_line":"        return flavor_id"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def _create_one_instance_per_host(self, flavor\u003dNone, run_command\u003dNone):"},{"line_number":298,"context_line":"        \"\"\"Create one instance per compute node"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f34ed5c_7fc7733a","line":295,"in_reply_to":"794c6d03_e696ba65","updated":"2025-08-13 18:12:41.000000000","message":"yeah, it is invoked in the reverse order.\nI don\u0027t think that we need to wait for deletion in the end, unless I am missing something (it will stuck to delete if there are instances not deleted yet? but we wait for instances to be deleted too...)","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ce138354fb26085a91837fa5781bbcfc03ea34ff","unresolved":true,"context_lines":[{"line_number":292,"context_line":"            is_public\u003dTrue)[\u0027flavor\u0027][\u0027id\u0027]"},{"line_number":293,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":294,"context_line":"                        self.flavors_client.delete_flavor, flavor_id)"},{"line_number":295,"context_line":"        return flavor_id"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def _create_one_instance_per_host(self, flavor\u003dNone, run_command\u003dNone):"},{"line_number":298,"context_line":"        \"\"\"Create one instance per compute node"}],"source_content_type":"text/x-python","patch_set":2,"id":"794c6d03_e696ba65","line":295,"in_reply_to":"aec25ac2_b6c71cdc","updated":"2025-07-01 12:56:42.000000000","message":"as an aside creating a create_flavor function in the base class is the correct convetional thing to do \n\nbut if you look at how its doen in tempest \n\n```\n def create_flavor(self, ram, vcpus, disk, name\u003dNone,\n                      is_public\u003d\u0027True\u0027, **kwargs):\n        if name is None:\n            name \u003d data_utils.rand_name(\n                prefix\u003dCONF.resource_name_prefix,\n                name\u003dself.__class__.__name__ + \"-flavor\")\n        id \u003d kwargs.pop(\u0027id\u0027, data_utils.rand_int_id(start\u003d1000))\n        client \u003d self.admin_flavors_client\n        flavor \u003d client.create_flavor(\n            ram\u003dram, vcpus\u003dvcpus, disk\u003ddisk, name\u003dname,\n            id\u003did, is_public\u003dis_public, **kwargs)[\u0027flavor\u0027]\n        self.addCleanup(client.wait_for_resource_deletion, flavor[\u0027id\u0027])\n        self.addCleanup(client.delete_flavor, flavor[\u0027id\u0027])\n        return flavor\n```        \n        \n\nhttps://github.com/openstack/tempest/blob/master/tempest/api/compute/base.py#L696-L709\n\nthe aslo add self.addCleanup(client.wait_for_resource_deletion, flavor[\u0027id\u0027])\n\nto make sure it deleted before the test exist. i dont know why the order is that way and not reversed\n\nwe proably should add the wait im just not sure if we should maintian the same order or not.\n\nmy guess is the clean up function are runing in the reverse order that they are added adn that why.\n\nwhere it is used directly and not via add cleanup the wait happens after\n\nwhere it used in add_cleanup its alwasy used first.","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b28b1191e6102df7299a48ce86b569768b51bced","unresolved":true,"context_lines":[{"line_number":360,"context_line":"            script_clean \u003d textwrap.dedent(script).lstrip().encode(\u0027utf8\u0027)"},{"line_number":361,"context_line":"            script_b64 \u003d base64.b64encode(script_clean)"},{"line_number":362,"context_line":"            kwargs_server[\u0027user_data\u0027] \u003d script_b64"},{"line_number":363,"context_line":"        flavor \u003d flavor if flavor else CONF.compute.flavor_ref"},{"line_number":364,"context_line":"        instance \u003d self.create_server("},{"line_number":365,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":366,"context_line":"            flavor\u003dflavor, clients\u003dself.os_admin, validatable\u003dvalidatable,"}],"source_content_type":"text/x-python","patch_set":2,"id":"00415cd3_6b4cda4f","line":363,"updated":"2025-07-01 12:50:36.000000000","message":"+1 when a test does not directly need a speifc flavor we shoudl fall bac to the one specified in teh tempest config.","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":true,"context_lines":[{"line_number":360,"context_line":"            script_clean \u003d textwrap.dedent(script).lstrip().encode(\u0027utf8\u0027)"},{"line_number":361,"context_line":"            script_b64 \u003d base64.b64encode(script_clean)"},{"line_number":362,"context_line":"            kwargs_server[\u0027user_data\u0027] \u003d script_b64"},{"line_number":363,"context_line":"        flavor \u003d flavor if flavor else CONF.compute.flavor_ref"},{"line_number":364,"context_line":"        instance \u003d self.create_server("},{"line_number":365,"context_line":"            image_id\u003dCONF.compute.image_ref, wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":366,"context_line":"            flavor\u003dflavor, clients\u003dself.os_admin, validatable\u003dvalidatable,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa9dfe9c_d695134c","line":363,"in_reply_to":"00415cd3_6b4cda4f","updated":"2025-08-13 18:12:41.000000000","message":"we could just provide as None too, and let tempest create_server with its defaults, which is also `CONF.compute.flavor_ref`","commit_id":"b5c784c1ebc21b59882a61d2f438b9774c4bdf56"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d197ce834119468955bd32b04e11ce3ae2471c94","unresolved":true,"context_lines":[{"line_number":278,"context_line":"        \"\"\"Create a flavor with custom RAM size"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        :param ram: RAM in MB to be set for the flavor."},{"line_number":281,"context_line":"        :returns: A flavor dict."},{"line_number":282,"context_line":"        \"\"\""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        flavor_id \u003d self.flavors_client.create_flavor("}],"source_content_type":"text/x-python","patch_set":25,"id":"0bb5980b_bd05e6d6","line":281,"range":{"start_line":281,"start_character":27,"end_line":281,"end_character":31},"updated":"2025-08-13 08:56:00.000000000","message":"I think it should be id based on the flavor_id var name.\n```suggestion\n        :returns: A flavor id.\n```","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"ac1702973a927782b5db3cf39c4a333e3c5312ca","unresolved":false,"context_lines":[{"line_number":278,"context_line":"        \"\"\"Create a flavor with custom RAM size"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        :param ram: RAM in MB to be set for the flavor."},{"line_number":281,"context_line":"        :returns: A flavor dict."},{"line_number":282,"context_line":"        \"\"\""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        flavor_id \u003d self.flavors_client.create_flavor("}],"source_content_type":"text/x-python","patch_set":25,"id":"d3edc83b_563341b8","line":281,"range":{"start_line":281,"start_character":27,"end_line":281,"end_character":31},"in_reply_to":"0bb5980b_bd05e6d6","updated":"2025-08-13 11:08:39.000000000","message":"Done","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d197ce834119468955bd32b04e11ce3ae2471c94","unresolved":true,"context_lines":[{"line_number":300,"context_line":"        This goes up to the min_compute_nodes threshold so that things don\u0027t"},{"line_number":301,"context_line":"        get crazy if you have 1000 compute nodes but set min to 3."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        :param run_command: the command you want to run in the new instances"},{"line_number":304,"context_line":"        :returns: A list of instance UUIDs."},{"line_number":305,"context_line":"        \"\"\""},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"0a257edf_e716d9a7","line":303,"updated":"2025-08-13 08:56:00.000000000","message":"```suggestion\n        :param run_command: the command you want to run in the new instances\n        :param flavor: Flavor Name or ID\n```","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"ac1702973a927782b5db3cf39c4a333e3c5312ca","unresolved":false,"context_lines":[{"line_number":300,"context_line":"        This goes up to the min_compute_nodes threshold so that things don\u0027t"},{"line_number":301,"context_line":"        get crazy if you have 1000 compute nodes but set min to 3."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        :param run_command: the command you want to run in the new instances"},{"line_number":304,"context_line":"        :returns: A list of instance UUIDs."},{"line_number":305,"context_line":"        \"\"\""},{"line_number":306,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"6a58af07_6e6520a0","line":303,"in_reply_to":"0a257edf_e716d9a7","updated":"2025-08-13 11:08:39.000000000","message":"Done","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d197ce834119468955bd32b04e11ce3ae2471c94","unresolved":true,"context_lines":[{"line_number":400,"context_line":"                    \"archive_policy_name\": \"low\","},{"line_number":401,"context_line":"                    \"resource_id\": body[\u0027id\u0027],"},{"line_number":402,"context_line":"                    \"name\": metric_name,"},{"line_number":403,"context_line":"                    \"unit\": \"ns\""},{"line_number":404,"context_line":"                }"},{"line_number":405,"context_line":"                metric_body \u003d {**default_metric,"},{"line_number":406,"context_line":"                               **kwargs[\u0027metrics\u0027][metric_name]}"}],"source_content_type":"text/x-python","patch_set":25,"id":"7d420ec1_dd795cd2","line":403,"range":{"start_line":403,"start_character":20,"end_line":403,"end_character":32},"updated":"2025-08-13 08:56:00.000000000","message":"Does this unit works for all metrics?","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":true,"context_lines":[{"line_number":400,"context_line":"                    \"archive_policy_name\": \"low\","},{"line_number":401,"context_line":"                    \"resource_id\": body[\u0027id\u0027],"},{"line_number":402,"context_line":"                    \"name\": metric_name,"},{"line_number":403,"context_line":"                    \"unit\": \"ns\""},{"line_number":404,"context_line":"                }"},{"line_number":405,"context_line":"                metric_body \u003d {**default_metric,"},{"line_number":406,"context_line":"                               **kwargs[\u0027metrics\u0027][metric_name]}"}],"source_content_type":"text/x-python","patch_set":25,"id":"28a2e2e9_5a275396","line":403,"range":{"start_line":403,"start_character":20,"end_line":403,"end_character":32},"in_reply_to":"6dd0e0a7_4787c077","updated":"2025-08-13 18:12:41.000000000","message":"imo there is no default metric, this \u0027create_resource\u0027 is generic method to create any metric in gnocchi, so we should get the unit from **kwargs.\nwhen tests do not provide any metrics, the default metrics are instance cpu and instance ram, and you are already fixing the proper unit below.\nIf unit is mandatory, we can raise an exception when not provided.\nI would not block this patch because of that, but would be interesting to fix in other place.","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"ac1702973a927782b5db3cf39c4a333e3c5312ca","unresolved":true,"context_lines":[{"line_number":400,"context_line":"                    \"archive_policy_name\": \"low\","},{"line_number":401,"context_line":"                    \"resource_id\": body[\u0027id\u0027],"},{"line_number":402,"context_line":"                    \"name\": metric_name,"},{"line_number":403,"context_line":"                    \"unit\": \"ns\""},{"line_number":404,"context_line":"                }"},{"line_number":405,"context_line":"                metric_body \u003d {**default_metric,"},{"line_number":406,"context_line":"                               **kwargs[\u0027metrics\u0027][metric_name]}"}],"source_content_type":"text/x-python","patch_set":25,"id":"6dd0e0a7_4787c077","line":403,"range":{"start_line":403,"start_character":20,"end_line":403,"end_character":32},"in_reply_to":"7d420ec1_dd795cd2","updated":"2025-08-13 11:08:39.000000000","message":"yes, default metric is the CPU, on the memory metrics we pass the unit for it","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d197ce834119468955bd32b04e11ce3ae2471c94","unresolved":true,"context_lines":[{"line_number":616,"context_line":"        ]"},{"line_number":617,"context_line":"        ram_measures \u003d self._make_measures_instance("},{"line_number":618,"context_line":"            5, 5,"},{"line_number":619,"context_line":"            min\u003dint(flavor[0][\u0027ram\u0027]) * 0.8,"},{"line_number":620,"context_line":"            max\u003dint(flavor[0][\u0027ram\u0027]) * 0.9,"},{"line_number":621,"context_line":"            metric_type\u003d\u0027ram\u0027)"},{"line_number":622,"context_line":"        self.gnocchi.add_measures(ram_metric_uuid, ram_measures)"}],"source_content_type":"text/x-python","patch_set":25,"id":"c7e36f1c_78bcf26a","line":619,"range":{"start_line":619,"start_character":40,"end_line":619,"end_character":44},"updated":"2025-08-13 08:56:00.000000000","message":"Sorry I might have lost the track of this change, Any speocific reason for incrementing its value?","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"ac1702973a927782b5db3cf39c4a333e3c5312ca","unresolved":true,"context_lines":[{"line_number":616,"context_line":"        ]"},{"line_number":617,"context_line":"        ram_measures \u003d self._make_measures_instance("},{"line_number":618,"context_line":"            5, 5,"},{"line_number":619,"context_line":"            min\u003dint(flavor[0][\u0027ram\u0027]) * 0.8,"},{"line_number":620,"context_line":"            max\u003dint(flavor[0][\u0027ram\u0027]) * 0.9,"},{"line_number":621,"context_line":"            metric_type\u003d\u0027ram\u0027)"},{"line_number":622,"context_line":"        self.gnocchi.add_measures(ram_metric_uuid, ram_measures)"}],"source_content_type":"text/x-python","patch_set":25,"id":"db95fc07_6e65ab32","line":619,"range":{"start_line":619,"start_character":40,"end_line":619,"end_character":44},"in_reply_to":"c7e36f1c_78bcf26a","updated":"2025-08-13 11:08:39.000000000","message":"just to reduce the randomized values, with 70-90 sometimes the final value was outside of the range for strategy apply","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":true,"context_lines":[{"line_number":578,"context_line":"            metrics \u003d {"},{"line_number":579,"context_line":"                self.GNOCCHI_METRIC_MAP[\"instance_cpu_usage\"]: {"},{"line_number":580,"context_line":"                    \u0027archive_policy_name\u0027: \u0027ceilometer-low-rate\u0027,"},{"line_number":581,"context_line":"                    \u0027unit\u0027: \u0027ns\u0027"},{"line_number":582,"context_line":"                },"},{"line_number":583,"context_line":"                self.GNOCCHI_METRIC_MAP[\"instance_ram_usage\"]: {"},{"line_number":584,"context_line":"                    \u0027archive_policy_name\u0027: \u0027ceilometer-low\u0027,"}],"source_content_type":"text/x-python","patch_set":26,"id":"e8238f0b_8bfa2610","line":581,"range":{"start_line":581,"start_character":29,"end_line":581,"end_character":31},"updated":"2025-08-13 18:12:41.000000000","message":"+1, it should be \u0027ns\u0027 for gnocchi[1]\n\n[1] https://github.com/openstack/watcher/blob/4080d5767da4e7cdd4e25d533f4dc7dd279d5c13/watcher/decision_engine/datasources/gnocchi.py#L148-L154","commit_id":"b00e6001305c563d6fd5a046a5ddcebf152dd723"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":true,"context_lines":[{"line_number":586,"context_line":"                }"},{"line_number":587,"context_line":"            }"},{"line_number":588,"context_line":"        else:"},{"line_number":589,"context_line":"            metrics \u003d {"},{"line_number":590,"context_line":"                self.GNOCCHI_METRIC_MAP[m]: {"},{"line_number":591,"context_line":"                    \u0027archive_policy_name\u0027: \u0027low\u0027"},{"line_number":592,"context_line":"                } for m in metrics.keys()"},{"line_number":593,"context_line":"            }"},{"line_number":594,"context_line":"        resource_params \u003d {"},{"line_number":595,"context_line":"            \u0027type\u0027: \u0027instance\u0027,"},{"line_number":596,"context_line":"            \u0027metrics\u0027: metrics,"}],"source_content_type":"text/x-python","patch_set":26,"id":"0315c111_b9f7f739","line":593,"range":{"start_line":589,"start_character":0,"end_line":593,"end_character":13},"updated":"2025-08-13 18:12:41.000000000","message":"This part looks problematic now, because there are tests[1] that provides the a dict with metric names only, and all of them will get the same archive_policy_name and no unit (or the default one above). Am I missing something?\n\n[1] https://github.com/openstack/watcher-tempest-plugin/blob/abd34b8a1ae89e1c2a7e24ec6627d200cc34d113/watcher_tempest_plugin/tests/scenario/test_execute_strategies.py#L109-L120","commit_id":"b00e6001305c563d6fd5a046a5ddcebf152dd723"}],"watcher_tempest_plugin/tests/scenario/test_execute_strategies_real.py":[{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d197ce834119468955bd32b04e11ce3ae2471c94","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        hypervisor \u003d self.get_hypervisor_details(host)"},{"line_number":73,"context_line":"        instances \u003d []"},{"line_number":74,"context_line":"        created_instances \u003d 2"},{"line_number":75,"context_line":"        for _ in range(2):"},{"line_number":76,"context_line":"            instance \u003d self._create_instance("},{"line_number":77,"context_line":"                host\u003dhost,"},{"line_number":78,"context_line":"                run_command\u003dself.COMMANDS_CREATE_LOAD[\u0027instance_cpu_usage\u0027])"}],"source_content_type":"text/x-python","patch_set":25,"id":"eda4283c_8e39da0c","line":75,"range":{"start_line":75,"start_character":23,"end_line":75,"end_character":24},"updated":"2025-08-13 08:56:00.000000000","message":"Can we reuse the created_instances var in range?\n```suggestion\n        for _ in range(created_instances):\n```","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":28647,"name":"David","display_name":"morenod","email":"dsanzmor@redhat.com","username":"morenod"},"change_message_id":"ac1702973a927782b5db3cf39c4a333e3c5312ca","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        hypervisor \u003d self.get_hypervisor_details(host)"},{"line_number":73,"context_line":"        instances \u003d []"},{"line_number":74,"context_line":"        created_instances \u003d 2"},{"line_number":75,"context_line":"        for _ in range(2):"},{"line_number":76,"context_line":"            instance \u003d self._create_instance("},{"line_number":77,"context_line":"                host\u003dhost,"},{"line_number":78,"context_line":"                run_command\u003dself.COMMANDS_CREATE_LOAD[\u0027instance_cpu_usage\u0027])"}],"source_content_type":"text/x-python","patch_set":25,"id":"3c5ddd2a_e7a2508c","line":75,"range":{"start_line":75,"start_character":23,"end_line":75,"end_character":24},"in_reply_to":"eda4283c_8e39da0c","updated":"2025-08-13 11:08:39.000000000","message":"good catch, applied","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"change_message_id":"d197ce834119468955bd32b04e11ce3ae2471c94","unresolved":true,"context_lines":[{"line_number":84,"context_line":"        # This is the time that we want to generate metrics"},{"line_number":85,"context_line":"        time.sleep(CONF.optimize.real_workload_period)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        # Set a threshold for CPU usage"},{"line_number":88,"context_line":"        # ( \u003cnumber of vms\u003e - 0.5 ) * (0.8/\u003cvcpus of the compute host\u003e)*100"},{"line_number":89,"context_line":"        threshold \u003d round("},{"line_number":90,"context_line":"            (created_instances - 0.5) * (0.8 / int(hypervisor[\u0027vcpus\u0027])) * 100)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"4dc96cf2_5a248dbc","line":88,"range":{"start_line":87,"start_character":8,"end_line":88,"end_character":75},"updated":"2025-08-13 08:56:00.000000000","message":"thank you for adding the code comment.","commit_id":"6b63c1959e22411bc65b6e06e2f558c4f25bd596"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        # Set a threshold for CPU usage"},{"line_number":88,"context_line":"        # ( \u003cnumber of vms\u003e - 0.5 ) * (0.8/\u003cvcpus of the compute host\u003e)*100"},{"line_number":89,"context_line":"        threshold \u003d round("},{"line_number":90,"context_line":"            (created_instances - 0.5) * (0.8 / int(hypervisor[\u0027vcpus\u0027])) * 100)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        audit_parameters \u003d {"},{"line_number":93,"context_line":"            \"metrics\": \"instance_cpu_usage\","}],"source_content_type":"text/x-python","patch_set":26,"id":"cb0b5eac_de20699b","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":79},"updated":"2025-08-13 18:12:41.000000000","message":"it makes sense, since the generated load is between 80% and 90%\nand created_instances here is the same as vcpus used, since the default flavor has vcpu\u003d1?","commit_id":"b00e6001305c563d6fd5a046a5ddcebf152dd723"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"e8f1231fb2104a92ee70b6ef6ec26a1d19837864","unresolved":true,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        audit_parameters \u003d {"},{"line_number":131,"context_line":"            \"metrics\": \"instance_ram_usage\","},{"line_number":132,"context_line":"            \"threshold\": 18,"},{"line_number":133,"context_line":"            \"period\": CONF.optimize.real_workload_period,"},{"line_number":134,"context_line":"            \"granularity\": 300}"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"4a1e760f_e241af5c","line":132,"range":{"start_line":132,"start_character":0,"end_line":132,"end_character":28},"updated":"2025-08-13 18:12:41.000000000","message":"ok, this looks fine, since one instance will be using 15%","commit_id":"b00e6001305c563d6fd5a046a5ddcebf152dd723"}]}
