)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"36e1eece3f8ea4c71a65102e3b283c0c0d1a95b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"85f6fe34_1e30090e","updated":"2022-01-14 18:40:56.000000000","message":"Would love to hear your thoughts on this, but want to avoid merging this until [1] has been updated to create two mount points for hugepages in the deployment.\n\n\n[1] https://opendev.org/openstack/whitebox-tempest-plugin/src/branch/master/roles/whitebox-nova-compute/tasks/main.yml","commit_id":"c30e5ed4287a5972524f952e9979ca65a19a54d9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"904ac216_e9130903","updated":"2022-02-08 19:10:13.000000000","message":"Looking good overall, a few niggles inline.","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"ef09e24c3bd21a4317d3981ea98c44e3a8d1f7d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"029d5884_b8e0a386","updated":"2022-01-28 17:11:25.000000000","message":"recheck","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"8bca07d84a2b36da18f4d095e697c69b5fbfa4af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ea351756_319ca8ef","updated":"2022-02-03 02:09:42.000000000","message":"recheck","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"50d4f2635486af2746834847a025a2e10e965cdb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"eba94503_4a4285cd","updated":"2022-02-02 21:09:48.000000000","message":"recheck","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"a3188415f743d07ea293641f877054f624e63709","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7a2bc021_2c39004e","updated":"2022-02-11 19:48:00.000000000","message":"recheck want to run with the new version of the depended-on patch","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"534fde611e625a86d56b84c11378662ef04d6026","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"8fdc3e47_ca83ab27","updated":"2022-04-25 02:12:32.000000000","message":"There does seem to be something going on with Nova here...\n\nThe server that didn\u0027t resize was booted on host \u003csnip\u003e-0029427095, and, knowing that our tests run sequentially so that we should never have more than 1 instance consuming host, during scheduling for the resize the hugepages in the HostState objects were as follows:\n\nhost \u003csnip\u003e-0029427096 {\"size_kb\": 1048576, \"total\": 1, \"used\": 1,\nhost \u003csnip\u003e-0029427095 {\"size_kb\": 1048576, \"total\": 1, \"used\": 0,\n\nSo it looks like there was phantom usage on host \u003csnip\u003e-0029427096 that cause the NUMATopologyFilter to return 0 hosts (we run with allow_resize_to_same_host\u003dFalse by default).","commit_id":"89e6e82448b294962a020a584ce59127b34489e8"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"0532d696002ce1dbc61c56e09794afbd4b7bbf31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"7caaf553_3d1dd931","updated":"2022-05-02 13:57:00.000000000","message":"recheck wasn\u0027t to figure out what\u0027s going on withe outdated HostState...","commit_id":"89e6e82448b294962a020a584ce59127b34489e8"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ee732ca6ede95a443b67ad4c495e364a0d78c86e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"b67e47b4_8b9bf226","updated":"2022-05-03 19:01:09.000000000","message":"Grrr, same :(\n\n  Traceback (most recent call last):\n  File \"/opt/stack/tempest/.tox/tempest/lib/python3.8/site-packages/whitebox_tempest_plugin/api/compute/test_hugepages.py\", line 176, in test_hugepage_resize_size_to_size\n    self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])","commit_id":"76752a8f70a228d4d529e342e39a814fcd42b67b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"17d3b53c31570e3d31fcad78451864d2289d991b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"e32055a0_ba02a55a","updated":"2022-05-03 18:23:42.000000000","message":"See inline, I have a theory, pushed a new PS to test it.","commit_id":"76752a8f70a228d4d529e342e39a814fcd42b67b"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"f69e472032d43e8084a12b410b0db5bd1cbdde57","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"aba8bed0_48623367","updated":"2023-03-22 20:14:57.000000000","message":"Trying to finish this request","commit_id":"c1227b4e6acb013eff017c2050845c3390377fd3"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"2691245823ec5ca225222efa19e761e6491a5cb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"1006e9d6_73aff6e7","updated":"2023-11-15 20:22:07.000000000","message":"recheck","commit_id":"b239a17d34d9f68b112bf866a3cb767a3c91f774"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"e7a0ff86cb95100cd6c4d734e275cf02f278e625","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"52e5372c_0f19c793","updated":"2023-11-15 15:00:58.000000000","message":"recheck","commit_id":"b239a17d34d9f68b112bf866a3cb767a3c91f774"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"37433e771638287a1eb5ff4834c6271667e67498","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":34,"id":"e03747ad_dc8282b4","updated":"2023-12-08 04:23:22.000000000","message":"Addressed my own nit","commit_id":"1aed215719ef8620d7b0c7db6213bed934d761f6"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"64319c0d29a071c82893b8192ad3f905162b44c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":36,"id":"f0d434d5_22513741","updated":"2024-04-04 13:57:02.000000000","message":"I only rebased it","commit_id":"8c2a5f6a0c76e4b07503a54d85933aa378a91418"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"88196dd66e05f12e1e861e6165a4f29cd6da533a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"366ec50b_274a1b60","updated":"2024-04-09 20:55:36.000000000","message":"recheck to see if the tests pass again","commit_id":"5296ebb20e7eacebbe7f24815461d6401e6b6b73"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"5d4ed754674ef5c73a21806e9aea59bf07d938a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"a859d0f2_fedbb21f","updated":"2024-04-10 09:17:29.000000000","message":"the timeout must be related to the fact that the second flavor in test_hugepage_resize_size_to_size test is too big, let\u0027s try to use a smaller one","commit_id":"5296ebb20e7eacebbe7f24815461d6401e6b6b73"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"1a3e43a20646d8a5abef6ed6800a67a2a6c7469b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":38,"id":"4f53fe34_47cd5ba7","updated":"2024-04-10 11:19:41.000000000","message":"recheck to confirm job\u0027s stability","commit_id":"4241371965fabe184b24ac9518638a8b61bc3a03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"92680aabb0d0c481c1f35efd585d1c159d5d18ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":38,"id":"4c484beb_192af064","updated":"2024-04-10 12:52:55.000000000","message":"that appears to be a yes on stablitiy but\n\ni belive there is a concern with a possibel race still.\n\npersonally i would be infaovr of mergeing this and perhaps disabling the test by default if its porblemantic but at least havign the test coverage there so it can be merged.\n\n\nthere is some level of caching in the schduler that can be prolematic if we are fully filling the comptues but using less resoucs can mitigate that.","commit_id":"4241371965fabe184b24ac9518638a8b61bc3a03"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"284689b0d2e06cb45be0bd68f35cf4dd3d005778","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"98894759_06b8d79e","updated":"2024-04-18 06:20:04.000000000","message":"check experimental","commit_id":"071426c223fe1e8afedf8f67736a2cb08d765573"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f439ceb2c46c7062b37ecbf4193f9f0bb8321eaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":39,"id":"b37e6639_e18cbcca","updated":"2024-04-18 16:26:36.000000000","message":"given this is in the experimental job now and it appears to be working\ni think we are better off merging this as is and then reviewing it again in a few weeks to see if we want to move the jobs or run this in an existing job instead.","commit_id":"071426c223fe1e8afedf8f67736a2cb08d765573"}],"devstack/plugin.sh":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":true,"context_lines":[{"line_number":35,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware cpu_topology \"$WHITEBOX_CPU_TOPOLOGY\""},{"line_number":36,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware dedicated_cpus_per_numa \"$WHITEBOX_DEDICATED_CPUS_PER_NUMA\""},{"line_number":37,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware shared_cpus_per_numa \"$WHITEBOX_SHARED_CPUS_PER_NUMA\""},{"line_number":38,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware shared_cpus_per_numa \"$WHITEBOX_SHARED_CPUS_PER_NUMA\""},{"line_number":39,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware configured_hugepage_sizes \"$WHITEBOX_CONFIGURED_HUGEPAGES\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    iniset $TEMPEST_CONFIG compute-feature-enabled virtio_rng \"$COMPUTE_FEATURE_VIRTIO_RNG\""}],"source_content_type":"text/x-sh","patch_set":4,"id":"23482560_6f2275fb","line":38,"updated":"2022-02-08 19:10:13.000000000","message":"You accidentally a duplicate line? :)","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"2c10bc28f0ee416cf2f0361b4512ed069f64c333","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware cpu_topology \"$WHITEBOX_CPU_TOPOLOGY\""},{"line_number":36,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware dedicated_cpus_per_numa \"$WHITEBOX_DEDICATED_CPUS_PER_NUMA\""},{"line_number":37,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware shared_cpus_per_numa \"$WHITEBOX_SHARED_CPUS_PER_NUMA\""},{"line_number":38,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware shared_cpus_per_numa \"$WHITEBOX_SHARED_CPUS_PER_NUMA\""},{"line_number":39,"context_line":"    iniset $TEMPEST_CONFIG whitebox-hardware configured_hugepage_sizes \"$WHITEBOX_CONFIGURED_HUGEPAGES\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    iniset $TEMPEST_CONFIG compute-feature-enabled virtio_rng \"$COMPUTE_FEATURE_VIRTIO_RNG\""}],"source_content_type":"text/x-sh","patch_set":4,"id":"3d6e1d2f_c5bb30d3","line":38,"in_reply_to":"23482560_6f2275fb","updated":"2022-02-08 19:19:23.000000000","message":"Ack","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"}],"playbooks/whitebox/pre.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f439ceb2c46c7062b37ecbf4193f9f0bb8321eaa","unresolved":true,"context_lines":[{"line_number":85,"context_line":"            mount -t hugetlbfs -o pagesize\u003d1G none /dev/hugepages1G"},{"line_number":86,"context_line":"          become: yes"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"      when: num_2M_pages is defined and num_1G_pages is defined"}],"source_content_type":"text/x-yaml","patch_set":38,"id":"38d793a5_d2d9b799","line":88,"updated":"2024-04-18 16:26:36.000000000","message":"so you can actully allcoate hugepages without a reboot too\n\nthis is how its normally done but in ci we may want to consider a diffent approch later..","commit_id":"4241371965fabe184b24ac9518638a8b61bc3a03"}],"whitebox_tempest_plugin/api/compute/base.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"17d3b53c31570e3d31fcad78451864d2289d991b","unresolved":true,"context_lines":[{"line_number":52,"context_line":"            admin client to delete it."},{"line_number":53,"context_line":"            \"\"\""},{"line_number":54,"context_line":"            try:"},{"line_number":55,"context_line":"                self.os_admin.servers_client.delete_server(server_id)"},{"line_number":56,"context_line":"                waiters.wait_for_server_termination("},{"line_number":57,"context_line":"                    self.os_admin.servers_client, server_id)"},{"line_number":58,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":20,"id":"c4469478_27d6dc4b","line":55,"updated":"2022-05-03 18:23:42.000000000","message":"[2] ... here, the server is already gone. So the delete_server() fails with a 404, the wait_for_server_termination() doesn\u0027t happen, we just log the exception below and continue with the next test method. So by the time we try to create the next instance, this one hasn\u0027t finished deleting yet (because we\u0027ve not waited), and so we get a legitimate NoValidHost because there aren\u0027t enough resources?","commit_id":"89e6e82448b294962a020a584ce59127b34489e8"}],"whitebox_tempest_plugin/api/compute/test_hugepages.py":[{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"7e9cd364c473680203e9fe83fe4d0d0081552d70","unresolved":true,"context_lines":[{"line_number":65,"context_line":"        # than or equal to the smallest potential size configured in the"},{"line_number":66,"context_line":"        # environment"},{"line_number":67,"context_line":"        large_page_size \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":68,"context_line":"        minimum_pagesize_threshold \u003d \\"},{"line_number":69,"context_line":"            min(CONF.whitebox_hardware.configured_hugepage_sizes)"},{"line_number":70,"context_line":"        self.assertTrue("},{"line_number":71,"context_line":"            large_page_size \u003e\u003d minimum_pagesize_threshold,"}],"source_content_type":"text/x-python","patch_set":1,"id":"320ba927_ec5875ec","line":68,"updated":"2022-01-14 18:46:06.000000000","message":"@Artom I know we discussed a static 1MB value for this type but I think this may allow for a more specific check based on the deployment. I\u0027m ok with switching it to 1MB though.","commit_id":"c30e5ed4287a5972524f952e9979ca65a19a54d9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":true,"context_lines":[{"line_number":65,"context_line":"        # than or equal to the smallest potential size configured in the"},{"line_number":66,"context_line":"        # environment"},{"line_number":67,"context_line":"        large_page_size \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":68,"context_line":"        minimum_pagesize_threshold \u003d \\"},{"line_number":69,"context_line":"            min(CONF.whitebox_hardware.configured_hugepage_sizes)"},{"line_number":70,"context_line":"        self.assertTrue("},{"line_number":71,"context_line":"            large_page_size \u003e\u003d minimum_pagesize_threshold,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d5a1256b_b79c1525","line":68,"in_reply_to":"320ba927_ec5875ec","updated":"2022-02-08 19:10:13.000000000","message":"I think this works, and allows for flexibility in different deployments without becoming too \"introspecty\"","commit_id":"c30e5ed4287a5972524f952e9979ca65a19a54d9"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"2c10bc28f0ee416cf2f0361b4512ed069f64c333","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        # than or equal to the smallest potential size configured in the"},{"line_number":66,"context_line":"        # environment"},{"line_number":67,"context_line":"        large_page_size \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":68,"context_line":"        minimum_pagesize_threshold \u003d \\"},{"line_number":69,"context_line":"            min(CONF.whitebox_hardware.configured_hugepage_sizes)"},{"line_number":70,"context_line":"        self.assertTrue("},{"line_number":71,"context_line":"            large_page_size \u003e\u003d minimum_pagesize_threshold,"}],"source_content_type":"text/x-python","patch_set":1,"id":"4b3b757a_b3e9624d","line":68,"in_reply_to":"d5a1256b_b79c1525","updated":"2022-02-08 19:19:23.000000000","message":"Done","commit_id":"c30e5ed4287a5972524f952e9979ca65a19a54d9"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"7e9cd364c473680203e9fe83fe4d0d0081552d70","unresolved":true,"context_lines":[{"line_number":142,"context_line":"            self.delete_server(server[\u0027id\u0027])"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @testtools.skipUnless("},{"line_number":145,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003d\u003d 2,"},{"line_number":146,"context_line":"        \u0027Need 2 configured hugepage sizes to execute test\u0027)"},{"line_number":147,"context_line":"    def test_hugepage_resize_explicit_size_to_size(self):"},{"line_number":148,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to another size"}],"source_content_type":"text/x-python","patch_set":1,"id":"e02e6226_a677c3db","line":145,"updated":"2022-01-14 18:46:06.000000000","message":"There is a way to configure this test to do all potential combinations of hugepages (if its beyond 2) but I worry that could make the test far too long.  I know another alternative would be to create multiple static tests using common sizes (e.g. test_hugepage_resize_2MB_to_1GB). But given the limited memory available for upstream VMs I thought this approach would allow the test to run both upstream and downstream with sizes that work in their respective environments.","commit_id":"c30e5ed4287a5972524f952e9979ca65a19a54d9"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"2c10bc28f0ee416cf2f0361b4512ed069f64c333","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            self.delete_server(server[\u0027id\u0027])"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @testtools.skipUnless("},{"line_number":145,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003d\u003d 2,"},{"line_number":146,"context_line":"        \u0027Need 2 configured hugepage sizes to execute test\u0027)"},{"line_number":147,"context_line":"    def test_hugepage_resize_explicit_size_to_size(self):"},{"line_number":148,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to another size"}],"source_content_type":"text/x-python","patch_set":1,"id":"c5656ac8_7c4aedd6","line":145,"in_reply_to":"3590a659_b0a4978f","updated":"2022-02-08 19:19:23.000000000","message":"Ack","commit_id":"c30e5ed4287a5972524f952e9979ca65a19a54d9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":true,"context_lines":[{"line_number":142,"context_line":"            self.delete_server(server[\u0027id\u0027])"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @testtools.skipUnless("},{"line_number":145,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003d\u003d 2,"},{"line_number":146,"context_line":"        \u0027Need 2 configured hugepage sizes to execute test\u0027)"},{"line_number":147,"context_line":"    def test_hugepage_resize_explicit_size_to_size(self):"},{"line_number":148,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to another size"}],"source_content_type":"text/x-python","patch_set":1,"id":"3590a659_b0a4978f","line":145,"in_reply_to":"e02e6226_a677c3db","updated":"2022-02-08 19:10:13.000000000","message":"I think two sizes is fine, though I\u0027d change the \u003d\u003d 2 to \u003e\u003d 2 (or \u003e 1)","commit_id":"c30e5ed4287a5972524f952e9979ca65a19a54d9"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _get_xml_hugepage_size(self, server_id):"},{"line_number":38,"context_line":"        \"\"\"Analyze the hugepage xml element(s) from a provided instance. Expect"},{"line_number":39,"context_line":"        to find only one hugepage element in the domain. Return boolean result"},{"line_number":40,"context_line":"        comparing if the found page size is equal to the expected page size."},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        huge_pages_list \u003d self._get_hugepage_xml_element(server_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"f0edaeaf_b3696127","line":39,"range":{"start_line":39,"start_character":64,"end_line":39,"end_character":71},"updated":"2022-02-08 19:10:13.000000000","message":"That\u0027s out of date, it looks like, you\u0027re returning an int now.","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"2c10bc28f0ee416cf2f0361b4512ed069f64c333","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    def _get_xml_hugepage_size(self, server_id):"},{"line_number":38,"context_line":"        \"\"\"Analyze the hugepage xml element(s) from a provided instance. Expect"},{"line_number":39,"context_line":"        to find only one hugepage element in the domain. Return boolean result"},{"line_number":40,"context_line":"        comparing if the found page size is equal to the expected page size."},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        huge_pages_list \u003d self._get_hugepage_xml_element(server_id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"c3ed1ce8_7c792b0a","line":39,"range":{"start_line":39,"start_character":64,"end_line":39,"end_character":71},"in_reply_to":"f0edaeaf_b3696127","updated":"2022-02-08 19:19:23.000000000","message":"Ack","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        comparing if the found page size is equal to the expected page size."},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        huge_pages_list \u003d self._get_hugepage_xml_element(server_id)"},{"line_number":43,"context_line":"        self.assertEqual(len(huge_pages_list), 1, \"Expected to find 1 \""},{"line_number":44,"context_line":"                         \"hugepage XML element on server %s but found %s\""},{"line_number":45,"context_line":"                         % (server_id, len(huge_pages_list)))"},{"line_number":46,"context_line":"        huge_page_xml \u003d huge_pages_list[0]"}],"source_content_type":"text/x-python","patch_set":4,"id":"28f1c7df_72763fad","line":43,"updated":"2022-02-08 19:10:13.000000000","message":"nit: order is expected, actual, so 1, len(huge_pages_list)","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"2c10bc28f0ee416cf2f0361b4512ed069f64c333","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        comparing if the found page size is equal to the expected page size."},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        huge_pages_list \u003d self._get_hugepage_xml_element(server_id)"},{"line_number":43,"context_line":"        self.assertEqual(len(huge_pages_list), 1, \"Expected to find 1 \""},{"line_number":44,"context_line":"                         \"hugepage XML element on server %s but found %s\""},{"line_number":45,"context_line":"                         % (server_id, len(huge_pages_list)))"},{"line_number":46,"context_line":"        huge_page_xml \u003d huge_pages_list[0]"}],"source_content_type":"text/x-python","patch_set":4,"id":"84a03410_a31b60cd","line":43,"in_reply_to":"28f1c7df_72763fad","updated":"2022-02-08 19:19:23.000000000","message":"ugh sorry I keep doing that","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        huge_page_xml \u003d huge_pages_list[0]"},{"line_number":47,"context_line":"        return int(huge_page_xml.attrib[\u0027size\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_hugepage_resize_keyword_large_to_small(self):"},{"line_number":50,"context_line":"        \"\"\"Resize a guest with large hugepages to small hugepages and back"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        Create a guest using a flavor with hw:mem_page_size:large, resize it"}],"source_content_type":"text/x-python","patch_set":4,"id":"f0a08016_9e997347","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":51},"updated":"2022-02-08 19:10:13.000000000","message":"Why \"keyword\"?","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f2e13b3ee4b586f04501a6575c0906932cf8cef8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        huge_page_xml \u003d huge_pages_list[0]"},{"line_number":47,"context_line":"        return int(huge_page_xml.attrib[\u0027size\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_hugepage_resize_keyword_large_to_small(self):"},{"line_number":50,"context_line":"        \"\"\"Resize a guest with large hugepages to small hugepages and back"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        Create a guest using a flavor with hw:mem_page_size:large, resize it"}],"source_content_type":"text/x-python","patch_set":4,"id":"74c5a841_780dff6f","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":51},"in_reply_to":"33be67c1_1e6d3cb3","updated":"2022-04-24 19:48:41.000000000","message":"Done","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"e7a0ff86cb95100cd6c4d734e275cf02f278e625","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        huge_page_xml \u003d huge_pages_list[0]"},{"line_number":47,"context_line":"        return int(huge_page_xml.attrib[\u0027size\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_hugepage_resize_keyword_large_to_small(self):"},{"line_number":50,"context_line":"        \"\"\"Resize a guest with large hugepages to small hugepages and back"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        Create a guest using a flavor with hw:mem_page_size:large, resize it"}],"source_content_type":"text/x-python","patch_set":4,"id":"71c8631b_b03ba4e4","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":51},"in_reply_to":"33be67c1_1e6d3cb3","updated":"2023-11-15 15:00:58.000000000","message":"Thanks for clarifying, I\u0027ll update it accordingly.","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"24ea831d81461249500aa865e878ce2b99eb83f8","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        huge_page_xml \u003d huge_pages_list[0]"},{"line_number":47,"context_line":"        return int(huge_page_xml.attrib[\u0027size\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_hugepage_resize_keyword_large_to_small(self):"},{"line_number":50,"context_line":"        \"\"\"Resize a guest with large hugepages to small hugepages and back"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        Create a guest using a flavor with hw:mem_page_size:large, resize it"}],"source_content_type":"text/x-python","patch_set":4,"id":"33be67c1_1e6d3cb3","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":51},"in_reply_to":"96c7fd7c_efa66aa2","updated":"2022-02-08 21:09:10.000000000","message":"keywrod in that document means extra spec.\n\ntest_hugepage_resize_mem_page_size_large_to_small","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"2c10bc28f0ee416cf2f0361b4512ed069f64c333","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        huge_page_xml \u003d huge_pages_list[0]"},{"line_number":47,"context_line":"        return int(huge_page_xml.attrib[\u0027size\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_hugepage_resize_keyword_large_to_small(self):"},{"line_number":50,"context_line":"        \"\"\"Resize a guest with large hugepages to small hugepages and back"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        Create a guest using a flavor with hw:mem_page_size:large, resize it"}],"source_content_type":"text/x-python","patch_set":4,"id":"96c7fd7c_efa66aa2","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":51},"in_reply_to":"f0a08016_9e997347","updated":"2022-02-08 19:19:23.000000000","message":"I saw that as a description of the parameter when looking at ovs-dpdk tuning [1] with hugepages, I\u0027m not set in stone with this so if you have another suggestion or think its best to remove I can do that.\n\n[1] https://01.org/blogs/2020/openstack-ovs-dpdk-tuning","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":true,"context_lines":[{"line_number":81,"context_line":"            ram\u003dstr(CONF.whitebox.guest_ram_size),"},{"line_number":82,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: \u0027small\u0027})"},{"line_number":83,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Resize instance back to staring flavor size and repeat XML check of"},{"line_number":86,"context_line":"        # the guest"},{"line_number":87,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"d7da17e1_70bf812f","line":84,"updated":"2022-02-08 19:10:13.000000000","message":"We\u0027re missing an assert here, the hugepages element should be gone from the XML.","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"2c10bc28f0ee416cf2f0361b4512ed069f64c333","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            ram\u003dstr(CONF.whitebox.guest_ram_size),"},{"line_number":82,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: \u0027small\u0027})"},{"line_number":83,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Resize instance back to staring flavor size and repeat XML check of"},{"line_number":86,"context_line":"        # the guest"},{"line_number":87,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"d368c8d5_7010d8f6","line":84,"in_reply_to":"d7da17e1_70bf812f","updated":"2022-02-08 19:19:23.000000000","message":"Ack","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"17d3b53c31570e3d31fcad78451864d2289d991b","unresolved":true,"context_lines":[{"line_number":139,"context_line":"                (page_size, server[\u0027id\u0027], size_found)"},{"line_number":140,"context_line":"            )"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            self.delete_server(server[\u0027id\u0027])"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @testtools.skipUnless("},{"line_number":145,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003e 1,"}],"source_content_type":"text/x-python","patch_set":20,"id":"b1fc4599_5c8d7c67","line":142,"updated":"2022-05-03 18:23:42.000000000","message":"[1] I wonder if this is the problem. It deletes the server inside the test, meaning by the time we get to cleanup...","commit_id":"89e6e82448b294962a020a584ce59127b34489e8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e6c54263865831fa46728e76ecdc99ee6df56ce4","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            (large_page_size, minimum_pagesize_threshold, server[\u0027id\u0027])"},{"line_number":94,"context_line":"        )"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_hugepage_resize_size_to_small(self):"},{"line_number":97,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to small hugepages"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        Create a guest using a flavor with using an explicit hugepage size(s),"},{"line_number":100,"context_line":"        based on what is configured in whitebox_hardware. Resize the guest to a"},{"line_number":101,"context_line":"        flavor with hw:mem_page_size:small, and then resize it back to the"},{"line_number":102,"context_line":"        original flavor. Repeat this process for every hugepage size configured"},{"line_number":103,"context_line":"        in in whitebox_hardware.configured_hugepage_sizes"},{"line_number":104,"context_line":"        \"\"\""},{"line_number":105,"context_line":"        flavor_small \u003d self.create_flavor("},{"line_number":106,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":107,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: \u0027small\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # Create a flavor and launch an instance based on every configured"},{"line_number":110,"context_line":"        # hugepage size in the deployment."},{"line_number":111,"context_line":"        for page_size in CONF.whitebox_hardware.configured_hugepage_sizes:"},{"line_number":112,"context_line":"            flavor_a \u003d self.create_flavor("},{"line_number":113,"context_line":"                ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":114,"context_line":"                extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(page_size)})"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":117,"context_line":"                                             wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":120,"context_line":"            self.assertTrue("},{"line_number":121,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":122,"context_line":"                \"Expected pagesize of %s not found on server %s instead \""},{"line_number":123,"context_line":"                \"found %s\" % (page_size, server[\u0027id\u0027], size_found)"},{"line_number":124,"context_line":"            )"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # Resize the guest using a flavor with hw:mem_page_size:small,"},{"line_number":127,"context_line":"            # memory backing will not be present in with guest so follow up"},{"line_number":128,"context_line":"            # XML verification is not necessary"},{"line_number":129,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_small[\u0027id\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # Resize back to its original size and confirm memory backing"},{"line_number":132,"context_line":"            # element is present and has the correct size"},{"line_number":133,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":134,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":135,"context_line":"            self.assertTrue("},{"line_number":136,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":137,"context_line":"                \"Expected pagesize of %s not found on server %s after \""},{"line_number":138,"context_line":"                \"resizing back to original flavor size, instead found %s\" %"},{"line_number":139,"context_line":"                (page_size, server[\u0027id\u0027], size_found)"},{"line_number":140,"context_line":"            )"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @testtools.skipUnless("},{"line_number":143,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003e 1,"},{"line_number":144,"context_line":"        \u0027Need at least 2 configured hugepage sizes to execute test\u0027)"},{"line_number":145,"context_line":"    def test_hugepage_resize_size_to_size(self):"},{"line_number":146,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to another size"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        Create two flavors based on the two provided hugepage sizes.  The"},{"line_number":149,"context_line":"        flavors created use explicit sizes Create a"},{"line_number":150,"context_line":"        server using the first flavor, resize the guest to the second flavor,"},{"line_number":151,"context_line":"        and resize back to the original spec"},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        start_size, target_size \u003d \\"},{"line_number":154,"context_line":"            CONF.whitebox_hardware.configured_hugepage_sizes"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        flavor_a \u003d self.create_flavor("},{"line_number":157,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":158,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(start_size)})"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":161,"context_line":"                                         wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":164,"context_line":"        self.assertTrue("},{"line_number":165,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":166,"context_line":"            \"Expected pagesize of %s not found on server %s instead \""},{"line_number":167,"context_line":"            \"found %s\" % (start_size, server[\u0027id\u0027], size_found)"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        flavor_b \u003d self.create_flavor("},{"line_number":171,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":172,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(target_size)})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Memory backing element should no longer be present in XML,"},{"line_number":175,"context_line":"        # no need to check guest XML after resize"},{"line_number":176,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":177,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":178,"context_line":"        self.assertTrue("},{"line_number":179,"context_line":"            target_size \u003d\u003d size_found,"},{"line_number":180,"context_line":"            \"Expected pagesize of %s not found on server %s after resize \""},{"line_number":181,"context_line":"            \"instead found %s\" % (target_size, server[\u0027id\u0027], size_found)"},{"line_number":182,"context_line":"        )"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        # Resize back to its original size and confirm memory backing"},{"line_number":185,"context_line":"        # element is present and has the correct size"},{"line_number":186,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":187,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        self.assertTrue("},{"line_number":190,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":191,"context_line":"            \"Expected pagesize of %s not found on server %s after resizing \""},{"line_number":192,"context_line":"            \"back to original flavor size, instead found %s\" %"},{"line_number":193,"context_line":"            (start_size, server[\u0027id\u0027], size_found)"},{"line_number":194,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":23,"id":"a92b8427_5b9567af","line":194,"range":{"start_line":96,"start_character":1,"end_line":194,"end_character":9},"updated":"2022-07-12 07:26:06.000000000","message":"these tests don\u0027t work with 4k pages","commit_id":"c1227b4e6acb013eff017c2050845c3390377fd3"},{"author":{"_account_id":29455,"name":"Jason Grosso","email":"jgrosso@redhat.com","username":"jgrosso"},"change_message_id":"f69e472032d43e8084a12b410b0db5bd1cbdde57","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            (large_page_size, minimum_pagesize_threshold, server[\u0027id\u0027])"},{"line_number":94,"context_line":"        )"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_hugepage_resize_size_to_small(self):"},{"line_number":97,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to small hugepages"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        Create a guest using a flavor with using an explicit hugepage size(s),"},{"line_number":100,"context_line":"        based on what is configured in whitebox_hardware. Resize the guest to a"},{"line_number":101,"context_line":"        flavor with hw:mem_page_size:small, and then resize it back to the"},{"line_number":102,"context_line":"        original flavor. Repeat this process for every hugepage size configured"},{"line_number":103,"context_line":"        in in whitebox_hardware.configured_hugepage_sizes"},{"line_number":104,"context_line":"        \"\"\""},{"line_number":105,"context_line":"        flavor_small \u003d self.create_flavor("},{"line_number":106,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":107,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: \u0027small\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # Create a flavor and launch an instance based on every configured"},{"line_number":110,"context_line":"        # hugepage size in the deployment."},{"line_number":111,"context_line":"        for page_size in CONF.whitebox_hardware.configured_hugepage_sizes:"},{"line_number":112,"context_line":"            flavor_a \u003d self.create_flavor("},{"line_number":113,"context_line":"                ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":114,"context_line":"                extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(page_size)})"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":117,"context_line":"                                             wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":120,"context_line":"            self.assertTrue("},{"line_number":121,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":122,"context_line":"                \"Expected pagesize of %s not found on server %s instead \""},{"line_number":123,"context_line":"                \"found %s\" % (page_size, server[\u0027id\u0027], size_found)"},{"line_number":124,"context_line":"            )"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # Resize the guest using a flavor with hw:mem_page_size:small,"},{"line_number":127,"context_line":"            # memory backing will not be present in with guest so follow up"},{"line_number":128,"context_line":"            # XML verification is not necessary"},{"line_number":129,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_small[\u0027id\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # Resize back to its original size and confirm memory backing"},{"line_number":132,"context_line":"            # element is present and has the correct size"},{"line_number":133,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":134,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":135,"context_line":"            self.assertTrue("},{"line_number":136,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":137,"context_line":"                \"Expected pagesize of %s not found on server %s after \""},{"line_number":138,"context_line":"                \"resizing back to original flavor size, instead found %s\" %"},{"line_number":139,"context_line":"                (page_size, server[\u0027id\u0027], size_found)"},{"line_number":140,"context_line":"            )"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @testtools.skipUnless("},{"line_number":143,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003e 1,"},{"line_number":144,"context_line":"        \u0027Need at least 2 configured hugepage sizes to execute test\u0027)"},{"line_number":145,"context_line":"    def test_hugepage_resize_size_to_size(self):"},{"line_number":146,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to another size"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        Create two flavors based on the two provided hugepage sizes.  The"},{"line_number":149,"context_line":"        flavors created use explicit sizes Create a"},{"line_number":150,"context_line":"        server using the first flavor, resize the guest to the second flavor,"},{"line_number":151,"context_line":"        and resize back to the original spec"},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        start_size, target_size \u003d \\"},{"line_number":154,"context_line":"            CONF.whitebox_hardware.configured_hugepage_sizes"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        flavor_a \u003d self.create_flavor("},{"line_number":157,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":158,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(start_size)})"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":161,"context_line":"                                         wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":164,"context_line":"        self.assertTrue("},{"line_number":165,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":166,"context_line":"            \"Expected pagesize of %s not found on server %s instead \""},{"line_number":167,"context_line":"            \"found %s\" % (start_size, server[\u0027id\u0027], size_found)"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        flavor_b \u003d self.create_flavor("},{"line_number":171,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":172,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(target_size)})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Memory backing element should no longer be present in XML,"},{"line_number":175,"context_line":"        # no need to check guest XML after resize"},{"line_number":176,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":177,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":178,"context_line":"        self.assertTrue("},{"line_number":179,"context_line":"            target_size \u003d\u003d size_found,"},{"line_number":180,"context_line":"            \"Expected pagesize of %s not found on server %s after resize \""},{"line_number":181,"context_line":"            \"instead found %s\" % (target_size, server[\u0027id\u0027], size_found)"},{"line_number":182,"context_line":"        )"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        # Resize back to its original size and confirm memory backing"},{"line_number":185,"context_line":"        # element is present and has the correct size"},{"line_number":186,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":187,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        self.assertTrue("},{"line_number":190,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":191,"context_line":"            \"Expected pagesize of %s not found on server %s after resizing \""},{"line_number":192,"context_line":"            \"back to original flavor size, instead found %s\" %"},{"line_number":193,"context_line":"            (start_size, server[\u0027id\u0027], size_found)"},{"line_number":194,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":23,"id":"e25b2d8f_0974baf6","line":194,"range":{"start_line":96,"start_character":1,"end_line":194,"end_character":9},"in_reply_to":"a92b8427_5b9567af","updated":"2023-03-22 20:14:57.000000000","message":"These tests wont work with 4k cause we dont have the correct hardware to test or the test wont work upstream. If we try to test this on downstream plugin (non-whitebox) would that be ok?","commit_id":"c1227b4e6acb013eff017c2050845c3390377fd3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e0ee92448465ce13b2188aedb3ec73eb9f103959","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            (large_page_size, minimum_pagesize_threshold, server[\u0027id\u0027])"},{"line_number":94,"context_line":"        )"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_hugepage_resize_size_to_small(self):"},{"line_number":97,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to small hugepages"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        Create a guest using a flavor with using an explicit hugepage size(s),"},{"line_number":100,"context_line":"        based on what is configured in whitebox_hardware. Resize the guest to a"},{"line_number":101,"context_line":"        flavor with hw:mem_page_size:small, and then resize it back to the"},{"line_number":102,"context_line":"        original flavor. Repeat this process for every hugepage size configured"},{"line_number":103,"context_line":"        in in whitebox_hardware.configured_hugepage_sizes"},{"line_number":104,"context_line":"        \"\"\""},{"line_number":105,"context_line":"        flavor_small \u003d self.create_flavor("},{"line_number":106,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":107,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: \u0027small\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # Create a flavor and launch an instance based on every configured"},{"line_number":110,"context_line":"        # hugepage size in the deployment."},{"line_number":111,"context_line":"        for page_size in CONF.whitebox_hardware.configured_hugepage_sizes:"},{"line_number":112,"context_line":"            flavor_a \u003d self.create_flavor("},{"line_number":113,"context_line":"                ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":114,"context_line":"                extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(page_size)})"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":117,"context_line":"                                             wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":120,"context_line":"            self.assertTrue("},{"line_number":121,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":122,"context_line":"                \"Expected pagesize of %s not found on server %s instead \""},{"line_number":123,"context_line":"                \"found %s\" % (page_size, server[\u0027id\u0027], size_found)"},{"line_number":124,"context_line":"            )"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # Resize the guest using a flavor with hw:mem_page_size:small,"},{"line_number":127,"context_line":"            # memory backing will not be present in with guest so follow up"},{"line_number":128,"context_line":"            # XML verification is not necessary"},{"line_number":129,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_small[\u0027id\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # Resize back to its original size and confirm memory backing"},{"line_number":132,"context_line":"            # element is present and has the correct size"},{"line_number":133,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":134,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":135,"context_line":"            self.assertTrue("},{"line_number":136,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":137,"context_line":"                \"Expected pagesize of %s not found on server %s after \""},{"line_number":138,"context_line":"                \"resizing back to original flavor size, instead found %s\" %"},{"line_number":139,"context_line":"                (page_size, server[\u0027id\u0027], size_found)"},{"line_number":140,"context_line":"            )"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @testtools.skipUnless("},{"line_number":143,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003e 1,"},{"line_number":144,"context_line":"        \u0027Need at least 2 configured hugepage sizes to execute test\u0027)"},{"line_number":145,"context_line":"    def test_hugepage_resize_size_to_size(self):"},{"line_number":146,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to another size"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        Create two flavors based on the two provided hugepage sizes.  The"},{"line_number":149,"context_line":"        flavors created use explicit sizes Create a"},{"line_number":150,"context_line":"        server using the first flavor, resize the guest to the second flavor,"},{"line_number":151,"context_line":"        and resize back to the original spec"},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        start_size, target_size \u003d \\"},{"line_number":154,"context_line":"            CONF.whitebox_hardware.configured_hugepage_sizes"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        flavor_a \u003d self.create_flavor("},{"line_number":157,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":158,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(start_size)})"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":161,"context_line":"                                         wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":164,"context_line":"        self.assertTrue("},{"line_number":165,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":166,"context_line":"            \"Expected pagesize of %s not found on server %s instead \""},{"line_number":167,"context_line":"            \"found %s\" % (start_size, server[\u0027id\u0027], size_found)"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        flavor_b \u003d self.create_flavor("},{"line_number":171,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":172,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(target_size)})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Memory backing element should no longer be present in XML,"},{"line_number":175,"context_line":"        # no need to check guest XML after resize"},{"line_number":176,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":177,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":178,"context_line":"        self.assertTrue("},{"line_number":179,"context_line":"            target_size \u003d\u003d size_found,"},{"line_number":180,"context_line":"            \"Expected pagesize of %s not found on server %s after resize \""},{"line_number":181,"context_line":"            \"instead found %s\" % (target_size, server[\u0027id\u0027], size_found)"},{"line_number":182,"context_line":"        )"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        # Resize back to its original size and confirm memory backing"},{"line_number":185,"context_line":"        # element is present and has the correct size"},{"line_number":186,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":187,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        self.assertTrue("},{"line_number":190,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":191,"context_line":"            \"Expected pagesize of %s not found on server %s after resizing \""},{"line_number":192,"context_line":"            \"back to original flavor size, instead found %s\" %"},{"line_number":193,"context_line":"            (start_size, server[\u0027id\u0027], size_found)"},{"line_number":194,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":23,"id":"a1d8b802_50793ad5","line":194,"range":{"start_line":96,"start_character":1,"end_line":194,"end_character":9},"in_reply_to":"b4d84d7b_092a6d4e","updated":"2024-04-18 16:28:35.000000000","message":"Acknowledged","commit_id":"c1227b4e6acb013eff017c2050845c3390377fd3"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"520b6c6f4adbc4ede882d00e73b817ed13b8473e","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            (large_page_size, minimum_pagesize_threshold, server[\u0027id\u0027])"},{"line_number":94,"context_line":"        )"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_hugepage_resize_size_to_small(self):"},{"line_number":97,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to small hugepages"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        Create a guest using a flavor with using an explicit hugepage size(s),"},{"line_number":100,"context_line":"        based on what is configured in whitebox_hardware. Resize the guest to a"},{"line_number":101,"context_line":"        flavor with hw:mem_page_size:small, and then resize it back to the"},{"line_number":102,"context_line":"        original flavor. Repeat this process for every hugepage size configured"},{"line_number":103,"context_line":"        in in whitebox_hardware.configured_hugepage_sizes"},{"line_number":104,"context_line":"        \"\"\""},{"line_number":105,"context_line":"        flavor_small \u003d self.create_flavor("},{"line_number":106,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":107,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: \u0027small\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # Create a flavor and launch an instance based on every configured"},{"line_number":110,"context_line":"        # hugepage size in the deployment."},{"line_number":111,"context_line":"        for page_size in CONF.whitebox_hardware.configured_hugepage_sizes:"},{"line_number":112,"context_line":"            flavor_a \u003d self.create_flavor("},{"line_number":113,"context_line":"                ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":114,"context_line":"                extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(page_size)})"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":117,"context_line":"                                             wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":120,"context_line":"            self.assertTrue("},{"line_number":121,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":122,"context_line":"                \"Expected pagesize of %s not found on server %s instead \""},{"line_number":123,"context_line":"                \"found %s\" % (page_size, server[\u0027id\u0027], size_found)"},{"line_number":124,"context_line":"            )"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # Resize the guest using a flavor with hw:mem_page_size:small,"},{"line_number":127,"context_line":"            # memory backing will not be present in with guest so follow up"},{"line_number":128,"context_line":"            # XML verification is not necessary"},{"line_number":129,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_small[\u0027id\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # Resize back to its original size and confirm memory backing"},{"line_number":132,"context_line":"            # element is present and has the correct size"},{"line_number":133,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":134,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":135,"context_line":"            self.assertTrue("},{"line_number":136,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":137,"context_line":"                \"Expected pagesize of %s not found on server %s after \""},{"line_number":138,"context_line":"                \"resizing back to original flavor size, instead found %s\" %"},{"line_number":139,"context_line":"                (page_size, server[\u0027id\u0027], size_found)"},{"line_number":140,"context_line":"            )"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @testtools.skipUnless("},{"line_number":143,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003e 1,"},{"line_number":144,"context_line":"        \u0027Need at least 2 configured hugepage sizes to execute test\u0027)"},{"line_number":145,"context_line":"    def test_hugepage_resize_size_to_size(self):"},{"line_number":146,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to another size"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        Create two flavors based on the two provided hugepage sizes.  The"},{"line_number":149,"context_line":"        flavors created use explicit sizes Create a"},{"line_number":150,"context_line":"        server using the first flavor, resize the guest to the second flavor,"},{"line_number":151,"context_line":"        and resize back to the original spec"},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        start_size, target_size \u003d \\"},{"line_number":154,"context_line":"            CONF.whitebox_hardware.configured_hugepage_sizes"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        flavor_a \u003d self.create_flavor("},{"line_number":157,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":158,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(start_size)})"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":161,"context_line":"                                         wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":164,"context_line":"        self.assertTrue("},{"line_number":165,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":166,"context_line":"            \"Expected pagesize of %s not found on server %s instead \""},{"line_number":167,"context_line":"            \"found %s\" % (start_size, server[\u0027id\u0027], size_found)"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        flavor_b \u003d self.create_flavor("},{"line_number":171,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":172,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(target_size)})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Memory backing element should no longer be present in XML,"},{"line_number":175,"context_line":"        # no need to check guest XML after resize"},{"line_number":176,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":177,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":178,"context_line":"        self.assertTrue("},{"line_number":179,"context_line":"            target_size \u003d\u003d size_found,"},{"line_number":180,"context_line":"            \"Expected pagesize of %s not found on server %s after resize \""},{"line_number":181,"context_line":"            \"instead found %s\" % (target_size, server[\u0027id\u0027], size_found)"},{"line_number":182,"context_line":"        )"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        # Resize back to its original size and confirm memory backing"},{"line_number":185,"context_line":"        # element is present and has the correct size"},{"line_number":186,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":187,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        self.assertTrue("},{"line_number":190,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":191,"context_line":"            \"Expected pagesize of %s not found on server %s after resizing \""},{"line_number":192,"context_line":"            \"back to original flavor size, instead found %s\" %"},{"line_number":193,"context_line":"            (start_size, server[\u0027id\u0027], size_found)"},{"line_number":194,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":23,"id":"e82ca49a_baf6c4a3","line":194,"range":{"start_line":96,"start_character":1,"end_line":194,"end_character":9},"in_reply_to":"e25b2d8f_0974baf6","updated":"2023-03-23 01:41:18.000000000","message":"It\u0027s been a while, but from memory, I think we don\u0027t have 1G pages in our upstream VMs, and these tests won\u0027t work for 4k pages because... I think we only generate the memorybacking XML element for page sizes \u003e\u003d 2M? I\u0027d _really_ like for these to run upstream, but I guess yeah, downstream-only with 2M and 1G pages is the way forward.","commit_id":"c1227b4e6acb013eff017c2050845c3390377fd3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8bdc1f332de38d578338dd7284bb687f4de247bc","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            (large_page_size, minimum_pagesize_threshold, server[\u0027id\u0027])"},{"line_number":94,"context_line":"        )"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_hugepage_resize_size_to_small(self):"},{"line_number":97,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to small hugepages"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        Create a guest using a flavor with using an explicit hugepage size(s),"},{"line_number":100,"context_line":"        based on what is configured in whitebox_hardware. Resize the guest to a"},{"line_number":101,"context_line":"        flavor with hw:mem_page_size:small, and then resize it back to the"},{"line_number":102,"context_line":"        original flavor. Repeat this process for every hugepage size configured"},{"line_number":103,"context_line":"        in in whitebox_hardware.configured_hugepage_sizes"},{"line_number":104,"context_line":"        \"\"\""},{"line_number":105,"context_line":"        flavor_small \u003d self.create_flavor("},{"line_number":106,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":107,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: \u0027small\u0027})"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # Create a flavor and launch an instance based on every configured"},{"line_number":110,"context_line":"        # hugepage size in the deployment."},{"line_number":111,"context_line":"        for page_size in CONF.whitebox_hardware.configured_hugepage_sizes:"},{"line_number":112,"context_line":"            flavor_a \u003d self.create_flavor("},{"line_number":113,"context_line":"                ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":114,"context_line":"                extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(page_size)})"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"            server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":117,"context_line":"                                             wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":120,"context_line":"            self.assertTrue("},{"line_number":121,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":122,"context_line":"                \"Expected pagesize of %s not found on server %s instead \""},{"line_number":123,"context_line":"                \"found %s\" % (page_size, server[\u0027id\u0027], size_found)"},{"line_number":124,"context_line":"            )"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            # Resize the guest using a flavor with hw:mem_page_size:small,"},{"line_number":127,"context_line":"            # memory backing will not be present in with guest so follow up"},{"line_number":128,"context_line":"            # XML verification is not necessary"},{"line_number":129,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_small[\u0027id\u0027])"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"            # Resize back to its original size and confirm memory backing"},{"line_number":132,"context_line":"            # element is present and has the correct size"},{"line_number":133,"context_line":"            self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":134,"context_line":"            size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":135,"context_line":"            self.assertTrue("},{"line_number":136,"context_line":"                page_size \u003d\u003d size_found,"},{"line_number":137,"context_line":"                \"Expected pagesize of %s not found on server %s after \""},{"line_number":138,"context_line":"                \"resizing back to original flavor size, instead found %s\" %"},{"line_number":139,"context_line":"                (page_size, server[\u0027id\u0027], size_found)"},{"line_number":140,"context_line":"            )"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    @testtools.skipUnless("},{"line_number":143,"context_line":"        len(CONF.whitebox_hardware.configured_hugepage_sizes) \u003e 1,"},{"line_number":144,"context_line":"        \u0027Need at least 2 configured hugepage sizes to execute test\u0027)"},{"line_number":145,"context_line":"    def test_hugepage_resize_size_to_size(self):"},{"line_number":146,"context_line":"        \"\"\"Resize a guest with a specified hugepage size to another size"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        Create two flavors based on the two provided hugepage sizes.  The"},{"line_number":149,"context_line":"        flavors created use explicit sizes Create a"},{"line_number":150,"context_line":"        server using the first flavor, resize the guest to the second flavor,"},{"line_number":151,"context_line":"        and resize back to the original spec"},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        start_size, target_size \u003d \\"},{"line_number":154,"context_line":"            CONF.whitebox_hardware.configured_hugepage_sizes"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        flavor_a \u003d self.create_flavor("},{"line_number":157,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":158,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(start_size)})"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"        server \u003d self.create_test_server(flavor\u003dflavor_a[\u0027id\u0027],"},{"line_number":161,"context_line":"                                         wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":164,"context_line":"        self.assertTrue("},{"line_number":165,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":166,"context_line":"            \"Expected pagesize of %s not found on server %s instead \""},{"line_number":167,"context_line":"            \"found %s\" % (start_size, server[\u0027id\u0027], size_found)"},{"line_number":168,"context_line":"        )"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        flavor_b \u003d self.create_flavor("},{"line_number":171,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":172,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(target_size)})"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        # Memory backing element should no longer be present in XML,"},{"line_number":175,"context_line":"        # no need to check guest XML after resize"},{"line_number":176,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":177,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":178,"context_line":"        self.assertTrue("},{"line_number":179,"context_line":"            target_size \u003d\u003d size_found,"},{"line_number":180,"context_line":"            \"Expected pagesize of %s not found on server %s after resize \""},{"line_number":181,"context_line":"            \"instead found %s\" % (target_size, server[\u0027id\u0027], size_found)"},{"line_number":182,"context_line":"        )"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        # Resize back to its original size and confirm memory backing"},{"line_number":185,"context_line":"        # element is present and has the correct size"},{"line_number":186,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_a[\u0027id\u0027])"},{"line_number":187,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        self.assertTrue("},{"line_number":190,"context_line":"            start_size \u003d\u003d size_found,"},{"line_number":191,"context_line":"            \"Expected pagesize of %s not found on server %s after resizing \""},{"line_number":192,"context_line":"            \"back to original flavor size, instead found %s\" %"},{"line_number":193,"context_line":"            (start_size, server[\u0027id\u0027], size_found)"},{"line_number":194,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":23,"id":"b4d84d7b_092a6d4e","line":194,"range":{"start_line":96,"start_character":1,"end_line":194,"end_character":9},"in_reply_to":"e82ca49a_baf6c4a3","updated":"2023-03-23 11:38:17.000000000","message":"we generate the numa affinity parts for 4k but you are correct 4k paages dont have the memory backing elements.\n\ndownstream only i think is fine given the ci limitations.","commit_id":"c1227b4e6acb013eff017c2050845c3390377fd3"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"9acf6d732abca51f2c0b773dc2ed717da1227983","unresolved":true,"context_lines":[{"line_number":173,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":174,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(target_size)})"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # Memory backing element should no longer be present in XML,"},{"line_number":177,"context_line":"        # no need to check guest XML after resize"},{"line_number":178,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":179,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":33,"id":"963d9765_b315c49e","line":176,"updated":"2023-12-08 04:23:01.000000000","message":"This comment isn\u0027t true...","commit_id":"821310902f4d50be3406ff8fee5fa438758128e7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e0ee92448465ce13b2188aedb3ec73eb9f103959","unresolved":false,"context_lines":[{"line_number":173,"context_line":"            ram\u003dstr(CONF.whitebox.hugepage_guest_ram_size),"},{"line_number":174,"context_line":"            extra_specs\u003d{\u0027hw:mem_page_size\u0027: str(target_size)})"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        # Memory backing element should no longer be present in XML,"},{"line_number":177,"context_line":"        # no need to check guest XML after resize"},{"line_number":178,"context_line":"        self.resize_server(server[\u0027id\u0027], flavor_b[\u0027id\u0027])"},{"line_number":179,"context_line":"        size_found \u003d self._get_xml_hugepage_size(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":33,"id":"98a0f9bf_511b34eb","line":176,"in_reply_to":"963d9765_b315c49e","updated":"2024-04-18 16:28:35.000000000","message":"Acknowledged","commit_id":"821310902f4d50be3406ff8fee5fa438758128e7"}],"whitebox_tempest_plugin/config.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"fc0f191e56056326eba30c5e18d2a58cc37df9ce","unresolved":true,"context_lines":[{"line_number":119,"context_line":"        default\u003dNone,"},{"line_number":120,"context_line":"        help\u003d\u0027The expected default video display for the guest\u0027),"},{"line_number":121,"context_line":"    cfg.IntOpt("},{"line_number":122,"context_line":"        \u0027guest_ram_size\u0027,"},{"line_number":123,"context_line":"        default\u003d64,"},{"line_number":124,"context_line":"        help\u003d\"RAM size in MB to use when launching the guest\")"},{"line_number":125,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"087bc8c4_5b3bfb9c","line":122,"updated":"2022-02-08 19:10:13.000000000","message":"Maybe adjust this to reflect that this is only for hugepage-backed guests?","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"2c10bc28f0ee416cf2f0361b4512ed069f64c333","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        default\u003dNone,"},{"line_number":120,"context_line":"        help\u003d\u0027The expected default video display for the guest\u0027),"},{"line_number":121,"context_line":"    cfg.IntOpt("},{"line_number":122,"context_line":"        \u0027guest_ram_size\u0027,"},{"line_number":123,"context_line":"        default\u003d64,"},{"line_number":124,"context_line":"        help\u003d\"RAM size in MB to use when launching the guest\")"},{"line_number":125,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"0f6dae4f_a5917d57","line":122,"in_reply_to":"087bc8c4_5b3bfb9c","updated":"2022-02-08 19:19:23.000000000","message":"Ack","commit_id":"d0406f908efc96f6605416ddec549a55bc14904b"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"dea6c15e864fad482c4950312fbde5bbff51486e","unresolved":true,"context_lines":[{"line_number":234,"context_line":"        type\u003dtypes.List(types.Integer()),"},{"line_number":235,"context_line":"        default\u003d[],"},{"line_number":236,"context_line":"        help\u003d\u0027List of configured hugepage sizes available in kB in the \u0027"},{"line_number":237,"context_line":"             \u0027environment e.g. 2048,131072\u0027),"},{"line_number":238,"context_line":"    cfg.IntOpt("},{"line_number":239,"context_line":"        \u0027dedicated_cpus_per_numa\u0027,"},{"line_number":240,"context_line":"        default\u003d0,"}],"source_content_type":"text/x-python","patch_set":38,"id":"81414895_81d54f5e","line":237,"range":{"start_line":237,"start_character":36,"end_line":237,"end_character":42},"updated":"2024-04-18 17:29:19.000000000","message":"So this is what, 1M page size?","commit_id":"4241371965fabe184b24ac9518638a8b61bc3a03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7338a66a76f063e4c848488b366e040a4bf0e271","unresolved":true,"context_lines":[{"line_number":234,"context_line":"        type\u003dtypes.List(types.Integer()),"},{"line_number":235,"context_line":"        default\u003d[],"},{"line_number":236,"context_line":"        help\u003d\u0027List of configured hugepage sizes available in kB in the \u0027"},{"line_number":237,"context_line":"             \u0027environment e.g. 2048,131072\u0027),"},{"line_number":238,"context_line":"    cfg.IntOpt("},{"line_number":239,"context_line":"        \u0027dedicated_cpus_per_numa\u0027,"},{"line_number":240,"context_line":"        default\u003d0,"}],"source_content_type":"text/x-python","patch_set":38,"id":"0a5fd9c0_3ebfc21b","line":237,"range":{"start_line":237,"start_character":36,"end_line":237,"end_character":42},"updated":"2024-04-10 12:56:22.000000000","message":"this should be 1048576\n\nthis is actuly 1 GiB in KiB so base 2 not base 10\n\nthe size of the hugepage is determin by hardware standards and 131072 is not valid\n\nx86 suppoprots 1G hugepages but im not aware of anythign supprotign 131072KiB hugepages","commit_id":"4241371965fabe184b24ac9518638a8b61bc3a03"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"4d367891462ccf41c9285f521a1692c0b01f4e4a","unresolved":true,"context_lines":[{"line_number":234,"context_line":"        type\u003dtypes.List(types.Integer()),"},{"line_number":235,"context_line":"        default\u003d[],"},{"line_number":236,"context_line":"        help\u003d\u0027List of configured hugepage sizes available in kB in the \u0027"},{"line_number":237,"context_line":"             \u0027environment e.g. 2048,131072\u0027),"},{"line_number":238,"context_line":"    cfg.IntOpt("},{"line_number":239,"context_line":"        \u0027dedicated_cpus_per_numa\u0027,"},{"line_number":240,"context_line":"        default\u003d0,"}],"source_content_type":"text/x-python","patch_set":38,"id":"ed53f47c_70ad5583","line":237,"range":{"start_line":237,"start_character":36,"end_line":237,"end_character":42},"in_reply_to":"0a5fd9c0_3ebfc21b","updated":"2024-04-11 07:54:36.000000000","message":"sorry, i didn\u0027t give it much thought, i wanted to put there a smaller number and since it looked like multiples of 8 i simply divided it by 8 😊 .. ok, so you want me to put there the original value and remove the job (or maybe put the job to the experimental pipeline? - it seemed it passed couple of times, so it can bring some value in the experimental pipeline at least)","commit_id":"4241371965fabe184b24ac9518638a8b61bc3a03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8e4bf8e383f7a7f9806c32ca8199543fc2dd3b3d","unresolved":true,"context_lines":[{"line_number":234,"context_line":"        type\u003dtypes.List(types.Integer()),"},{"line_number":235,"context_line":"        default\u003d[],"},{"line_number":236,"context_line":"        help\u003d\u0027List of configured hugepage sizes available in kB in the \u0027"},{"line_number":237,"context_line":"             \u0027environment e.g. 2048,131072\u0027),"},{"line_number":238,"context_line":"    cfg.IntOpt("},{"line_number":239,"context_line":"        \u0027dedicated_cpus_per_numa\u0027,"},{"line_number":240,"context_line":"        default\u003d0,"}],"source_content_type":"text/x-python","patch_set":38,"id":"3de98bfd_16f2aa7b","line":237,"range":{"start_line":237,"start_character":36,"end_line":237,"end_character":42},"in_reply_to":"81414895_81d54f5e","updated":"2024-04-18 19:35:29.000000000","message":"the units are in KiB so \n2048 \u003d 2MiB 1048576 \u003d 1 GiB","commit_id":"4241371965fabe184b24ac9518638a8b61bc3a03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f439ceb2c46c7062b37ecbf4193f9f0bb8321eaa","unresolved":true,"context_lines":[{"line_number":234,"context_line":"        type\u003dtypes.List(types.Integer()),"},{"line_number":235,"context_line":"        default\u003d[],"},{"line_number":236,"context_line":"        help\u003d\u0027List of configured hugepage sizes available in kB in the \u0027"},{"line_number":237,"context_line":"             \u0027environment e.g. 2048,131072\u0027),"},{"line_number":238,"context_line":"    cfg.IntOpt("},{"line_number":239,"context_line":"        \u0027dedicated_cpus_per_numa\u0027,"},{"line_number":240,"context_line":"        default\u003d0,"}],"source_content_type":"text/x-python","patch_set":38,"id":"a723a67d_1c7b9d3c","line":237,"range":{"start_line":237,"start_character":36,"end_line":237,"end_character":42},"in_reply_to":"ed53f47c_70ad5583","updated":"2024-04-18 16:26:36.000000000","message":"no i think we need to figure out how to resolve the race\nand stableise the test.\n\ni belive we only see this issue in the upstrem ci and even then not every time\nso my current prefernce is revert the chnge in the help text to 1048576\nwhich you have done and \nmerge the test code but perhaps skip this test in the opendev ci for now\nadn then revist how we do this to prevent the race.\n\nputting it  in the expermintal pipeline i guess is fine for now and allows us to run it on demand so we can use it to spot check any change to nova and hugepages on demand.\n\nlongterm we shoudl try and consolidate and enabel this in the default job\nwith that siad this is the third time this has passed in a row now\nso perhaps the issue has now been resovled.","commit_id":"4241371965fabe184b24ac9518638a8b61bc3a03"}]}
