)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"cddd430d987efd69943258bfe5ce0a00454a9f03","unresolved":true,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Test creates an instance using the flavor and has two primary pass"},{"line_number":19,"context_line":"checks. The first check validates a memory device of model type \u0027nvdimm\u0027"},{"line_number":20,"context_line":"is present in the server\u0027s XML. The second check compares to \u0027nvdimm\u0027"},{"line_number":21,"context_line":"XML memory element\u0027s target size plus it\u0027s alignment size with the"},{"line_number":22,"context_line":"expected size configured for the namespace and confirms they are the"},{"line_number":23,"context_line":"same. Since the PMEM mapping value could be a generic representation"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"555f936f_c54ef4c4","line":20,"range":{"start_line":20,"start_character":32,"end_line":20,"end_character":1},"updated":"2021-01-21 17:23:43.000000000","message":"Consider adding an example of this; as not all reviewers might know what we\u0027re dealing with :-)\n\n  [stack@nova_libvirt ~]$ ndctl list -n namespace1.0\n  [\n    {\n      \"dev\":\"namespace1.0\",\n      \"mode\":\"devdax\",\n      \"map\":\"mem\",  \n      \"size\":6440353792,\n      \"uuid\":\"d685e2c5-f5a6-4c87-a198-2d75e37e9f6a\",\n      \"chardev\":\"dax1.0\",\n      \"align\":2097152,\n      \"name\":\"ns1\"  \n    }\n  ]\n\nThe guest should get 6440353792-2097152 \u003d\u003d 6438256640 bytes allocated.","commit_id":"0e90d421ebc9d266a35d5710f8662066e5d7be66"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"c2b8da62b19a24e09d7a35c1966bc4bd83988e2b","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Test creates an instance using the flavor and has two primary pass"},{"line_number":19,"context_line":"checks. The first check validates a memory device of model type \u0027nvdimm\u0027"},{"line_number":20,"context_line":"is present in the server\u0027s XML. The second check compares to \u0027nvdimm\u0027"},{"line_number":21,"context_line":"XML memory element\u0027s target size plus it\u0027s alignment size with the"},{"line_number":22,"context_line":"expected size configured for the namespace and confirms they are the"},{"line_number":23,"context_line":"same. Since the PMEM mapping value could be a generic representation"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"8afa8f84_d09f7a66","line":20,"range":{"start_line":20,"start_character":32,"end_line":20,"end_character":1},"in_reply_to":"555f936f_c54ef4c4","updated":"2021-01-25 22:10:53.000000000","message":"Ack, good idea will do","commit_id":"0e90d421ebc9d266a35d5710f8662066e5d7be66"}],"whitebox_tempest_plugin/api/compute/test_nvdimm.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f9dc570bfd2de91903b7b7754b5fa17df2b510d4","unresolved":true,"context_lines":[{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        root \u003d self.get_server_xml(server_id)"},{"line_number":51,"context_line":"        mem_device \u003d root.find(\u0027./devices/memory\u0027)"},{"line_number":52,"context_line":"        self.assertFalse(mem_device is None, \"memory device not found in xml \""},{"line_number":53,"context_line":"                         \"of server %s\" % server_id)"},{"line_number":54,"context_line":"        return mem_device"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8eaa8ee3_25924c0e","line":52,"updated":"2020-12-03 21:12:44.000000000","message":"nit: assertIsNotNone() here\n\nAnd if this helper is just getting the memory device, this assertion should live in the callin code.\n\n... And it\u0027s memory device, not device memory, so get_server_memory_device() right?","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"508dd8e91b78986c5738ca45e0d89b98ac20a084","unresolved":true,"context_lines":[{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        root \u003d self.get_server_xml(server_id)"},{"line_number":51,"context_line":"        mem_device \u003d root.find(\u0027./devices/memory\u0027)"},{"line_number":52,"context_line":"        self.assertFalse(mem_device is None, \"memory device not found in xml \""},{"line_number":53,"context_line":"                         \"of server %s\" % server_id)"},{"line_number":54,"context_line":"        return mem_device"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8e7196fb_f522712d","line":52,"in_reply_to":"8eaa8ee3_25924c0e","updated":"2020-12-03 21:32:58.000000000","message":"It probably makes sense to scrap this method and just do it all in the test method i.e.\n        root \u003d self.get_server_xml(server[\u0027id\u0027])\n        pmem_device \u003d root.find(\"./devices/memory[@model\u003d\u0027nvdimm\u0027]\")\n        assertIsNotNone(mem_device)","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f9dc570bfd2de91903b7b7754b5fa17df2b510d4","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        # Confirm the memory xml model is nvdimm"},{"line_number":64,"context_line":"        pmem_device_xml \u003d self.get_server_device_memory(server[\u0027id\u0027])"},{"line_number":65,"context_line":"        srv_mem_model \u003d pmem_device_xml.attrib.get(\u0027model\u0027)"},{"line_number":66,"context_line":"        self.assertEqual("},{"line_number":67,"context_line":"            srv_mem_model, self.xml_nvdimm_model, \"XML memory model %s not \""},{"line_number":68,"context_line":"            \"equal to nvdimm model %s\" % (srv_mem_model, self.xml_nvdimm_model)"},{"line_number":69,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"b3d774fb_e97492f9","line":66,"updated":"2020-12-03 21:12:44.000000000","message":"This assertion makes the one on L52 redundant, right?","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"508dd8e91b78986c5738ca45e0d89b98ac20a084","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        # Confirm the memory xml model is nvdimm"},{"line_number":64,"context_line":"        pmem_device_xml \u003d self.get_server_device_memory(server[\u0027id\u0027])"},{"line_number":65,"context_line":"        srv_mem_model \u003d pmem_device_xml.attrib.get(\u0027model\u0027)"},{"line_number":66,"context_line":"        self.assertEqual("},{"line_number":67,"context_line":"            srv_mem_model, self.xml_nvdimm_model, \"XML memory model %s not \""},{"line_number":68,"context_line":"            \"equal to nvdimm model %s\" % (srv_mem_model, self.xml_nvdimm_model)"},{"line_number":69,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ff101b1_df91665a","line":66,"in_reply_to":"b3d774fb_e97492f9","updated":"2020-12-03 21:32:58.000000000","message":"I wanted the L52 check so it fails more gracefully versus calling .get() on a potential None.  But seeing your comments, I think it might make more sense to approach it as mentioned in my response to L51.","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f9dc570bfd2de91903b7b7754b5fa17df2b510d4","unresolved":true,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # Gather the target size of the xml memory element and convert it to"},{"line_number":72,"context_line":"        # bytes"},{"line_number":73,"context_line":"        srv_mem_xml_target_size \u003d pmem_device_xml.find(\u0027target/size\u0027)"},{"line_number":74,"context_line":"        srv_pmem_xml_size \u003d srv_mem_xml_target_size.text + \\"},{"line_number":75,"context_line":"            srv_mem_xml_target_size.get(\u0027unit\u0027)"},{"line_number":76,"context_line":"        srv_pmem_size_bytes \u003d strutils.string_to_bytes(srv_pmem_xml_size,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bd073acd_cbf9b645","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":31},"updated":"2020-12-03 21:12:44.000000000","message":"nit: I\u0027d just call this target_size and keep using that same variable until we get the number we want in the units we need.","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"508dd8e91b78986c5738ca45e0d89b98ac20a084","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # Gather the target size of the xml memory element and convert it to"},{"line_number":72,"context_line":"        # bytes"},{"line_number":73,"context_line":"        srv_mem_xml_target_size \u003d pmem_device_xml.find(\u0027target/size\u0027)"},{"line_number":74,"context_line":"        srv_pmem_xml_size \u003d srv_mem_xml_target_size.text + \\"},{"line_number":75,"context_line":"            srv_mem_xml_target_size.get(\u0027unit\u0027)"},{"line_number":76,"context_line":"        srv_pmem_size_bytes \u003d strutils.string_to_bytes(srv_pmem_xml_size,"}],"source_content_type":"text/x-python","patch_set":2,"id":"c8e111a1_8c2c0d1f","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":31},"in_reply_to":"bd073acd_cbf9b645","updated":"2020-12-03 21:32:58.000000000","message":"Done","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f9dc570bfd2de91903b7b7754b5fa17df2b510d4","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                                                       return_int\u003dTrue)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        # Convert the expected memory to bytes"},{"line_number":80,"context_line":"        expected_pmem_size_bytes \u003d strutils.string_to_bytes("},{"line_number":81,"context_line":"            CONF.whitebox_hardware.pmem_size,"},{"line_number":82,"context_line":"            return_int\u003dTrue"},{"line_number":83,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"a1669b41_022d3e87","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":32},"updated":"2020-12-03 21:12:44.000000000","message":"nit: Ditto, call this expected_size","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"508dd8e91b78986c5738ca45e0d89b98ac20a084","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                                       return_int\u003dTrue)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        # Convert the expected memory to bytes"},{"line_number":80,"context_line":"        expected_pmem_size_bytes \u003d strutils.string_to_bytes("},{"line_number":81,"context_line":"            CONF.whitebox_hardware.pmem_size,"},{"line_number":82,"context_line":"            return_int\u003dTrue"},{"line_number":83,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":2,"id":"c4f2eb67_84afdb6d","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":32},"in_reply_to":"a1669b41_022d3e87","updated":"2020-12-03 21:32:58.000000000","message":"Done","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f9dc570bfd2de91903b7b7754b5fa17df2b510d4","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        )"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Confirm the expected and actual pmem size have a percent difference"},{"line_number":86,"context_line":"        # of less than 0.1%"},{"line_number":87,"context_line":"        percent_difference \u003d abs(expected_pmem_size_bytes -"},{"line_number":88,"context_line":"                                 srv_pmem_size_bytes) / srv_pmem_size_bytes"},{"line_number":89,"context_line":"        percent_difference \u003d percent_difference * 100"}],"source_content_type":"text/x-python","patch_set":2,"id":"183e90e0_be9909b7","line":86,"updated":"2020-12-03 21:12:44.000000000","message":"I wonder if we could use math.isclose() [1]... It\u0027s Python \u003e\u003d 3.5 though. But then we\u0027re not going to be running this test againt OSP13 on Python 2, so...\n\n[1] https://docs.python.org/3/library/math.html#math.isclose","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"508dd8e91b78986c5738ca45e0d89b98ac20a084","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        )"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Confirm the expected and actual pmem size have a percent difference"},{"line_number":86,"context_line":"        # of less than 0.1%"},{"line_number":87,"context_line":"        percent_difference \u003d abs(expected_pmem_size_bytes -"},{"line_number":88,"context_line":"                                 srv_pmem_size_bytes) / srv_pmem_size_bytes"},{"line_number":89,"context_line":"        percent_difference \u003d percent_difference * 100"}],"source_content_type":"text/x-python","patch_set":2,"id":"624c2403_045a6bc9","line":86,"in_reply_to":"183e90e0_be9909b7","updated":"2020-12-03 21:32:58.000000000","message":"Looking at this a little closer it looks like there is an align value in the nvdimm namespace that explains the deltas, e.g. with a 6GB namespace:\n[stack@intel-purley-lr-04 ~]$ ndctl list -n namespace1.0\n[\n  {\n    \"dev\":\"namespace1.0\",\n    \"mode\":\"devdax\",\n    \"map\":\"mem\",\n    \"size\":6440353792,\n    \"uuid\":\"d685e2c5-f5a6-4c87-a198-2d75e37e9f6a\",\n    \"chardev\":\"dax1.0\",\n    \"align\":2097152,\n    \"name\":\"ns1\"\n  }\n]\n\nThe summation of the size and align account for the full 6GB. If I could build a check based off this check I think it would be better than a % check. If not I would not mind trying math.isclose()","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"f9dc570bfd2de91903b7b7754b5fa17df2b510d4","unresolved":true,"context_lines":[{"line_number":88,"context_line":"                                 srv_pmem_size_bytes) / srv_pmem_size_bytes"},{"line_number":89,"context_line":"        percent_difference \u003d percent_difference * 100"},{"line_number":90,"context_line":"        self.assertTrue("},{"line_number":91,"context_line":"            percent_difference \u003c\u003d 0.1,"},{"line_number":92,"context_line":"            \"The percent difference %s between the expected memory and the \""},{"line_number":93,"context_line":"            \"found configured target memory is greater than 0.1, expected: %s \""},{"line_number":94,"context_line":"            \" actual: %s\" % (percent_difference,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9c158c4c_22bce9a4","line":91,"updated":"2020-12-03 21:12:44.000000000","message":"And then just math.isclone(expected_size, target_size, \u003ckwargs for closeness\u003e) is so much prettier","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"508dd8e91b78986c5738ca45e0d89b98ac20a084","unresolved":true,"context_lines":[{"line_number":88,"context_line":"                                 srv_pmem_size_bytes) / srv_pmem_size_bytes"},{"line_number":89,"context_line":"        percent_difference \u003d percent_difference * 100"},{"line_number":90,"context_line":"        self.assertTrue("},{"line_number":91,"context_line":"            percent_difference \u003c\u003d 0.1,"},{"line_number":92,"context_line":"            \"The percent difference %s between the expected memory and the \""},{"line_number":93,"context_line":"            \"found configured target memory is greater than 0.1, expected: %s \""},{"line_number":94,"context_line":"            \" actual: %s\" % (percent_difference,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da72bf22_91740059","line":91,"updated":"2020-12-03 21:32:58.000000000","message":"This percentage threshold is purely arbitrary at this point. If anyone has any idea on a function calculation to determine the percent of memory allocated to the VM from the namespace I would prefer to use that instead.","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"508dd8e91b78986c5738ca45e0d89b98ac20a084","unresolved":true,"context_lines":[{"line_number":88,"context_line":"                                 srv_pmem_size_bytes) / srv_pmem_size_bytes"},{"line_number":89,"context_line":"        percent_difference \u003d percent_difference * 100"},{"line_number":90,"context_line":"        self.assertTrue("},{"line_number":91,"context_line":"            percent_difference \u003c\u003d 0.1,"},{"line_number":92,"context_line":"            \"The percent difference %s between the expected memory and the \""},{"line_number":93,"context_line":"            \"found configured target memory is greater than 0.1, expected: %s \""},{"line_number":94,"context_line":"            \" actual: %s\" % (percent_difference,"}],"source_content_type":"text/x-python","patch_set":2,"id":"72e73fc3_9fef180e","line":91,"in_reply_to":"9c158c4c_22bce9a4","updated":"2020-12-03 21:32:58.000000000","message":"Agreed, if my response to L86 isn\u0027t possible I prefer this approach.","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"52d0fe10a8576a9ae5cb097d0d42ccf33058fc8e","unresolved":true,"context_lines":[{"line_number":68,"context_line":"        )"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # Confirm the expected and actual pmem size have a percent difference"},{"line_number":71,"context_line":"        # that does not exceed a relative tolerance of 0.01%"},{"line_number":72,"context_line":"        self.assertTrue("},{"line_number":73,"context_line":"            math.isclose(expected_size, target_size, rel_tol\u003d0.001),"},{"line_number":74,"context_line":"            \"The percent difference between the expected and the found \""}],"source_content_type":"text/x-python","patch_set":3,"id":"129fbdb3_dee9ed20","line":71,"range":{"start_line":71,"start_character":55,"end_line":71,"end_character":60},"updated":"2020-12-03 22:20:21.000000000","message":"Needs to be 0.1%","commit_id":"87da908e299fd1f694e729e1e82997e27163a1cd"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"cddd430d987efd69943258bfe5ce0a00454a9f03","unresolved":true,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # Confirm the expected memory size and the total memory allocated to"},{"line_number":78,"context_line":"        # the guest (target + alignment) are the same"},{"line_number":79,"context_line":"        self.assertEqual(expected_size, total_size, \"The expected config \""},{"line_number":80,"context_line":"                         \"of %s or %s bytes was not found on guest %s. \""},{"line_number":81,"context_line":"                         \"Instead total size found was %s bytes\" % ("},{"line_number":82,"context_line":"                             CONF.whitebox_hardware.pmem_size, expected_size,"}],"source_content_type":"text/x-python","patch_set":5,"id":"36688e2d_758199dc","line":79,"range":{"start_line":79,"start_character":0,"end_line":79,"end_character":1},"updated":"2021-01-21 17:23:43.000000000","message":"Thanks for the good commenting across; the test reads clear enough to me.","commit_id":"0e90d421ebc9d266a35d5710f8662066e5d7be66"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"c2b8da62b19a24e09d7a35c1966bc4bd83988e2b","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        # Confirm the expected memory size and the total memory allocated to"},{"line_number":78,"context_line":"        # the guest (target + alignment) are the same"},{"line_number":79,"context_line":"        self.assertEqual(expected_size, total_size, \"The expected config \""},{"line_number":80,"context_line":"                         \"of %s or %s bytes was not found on guest %s. \""},{"line_number":81,"context_line":"                         \"Instead total size found was %s bytes\" % ("},{"line_number":82,"context_line":"                             CONF.whitebox_hardware.pmem_size, expected_size,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfd763fa_57b710d3","line":79,"range":{"start_line":79,"start_character":0,"end_line":79,"end_character":1},"in_reply_to":"36688e2d_758199dc","updated":"2021-01-25 22:10:53.000000000","message":"Ty!","commit_id":"0e90d421ebc9d266a35d5710f8662066e5d7be66"}],"whitebox_tempest_plugin/config.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"59b6066d11db6d000f3b6e769983bbce46c4df1c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"a3e70410_ff8208a2","line":1,"in_reply_to":"e178c775_c6d82600","updated":"2020-12-03 22:13:47.000000000","message":"\u003e pep8: E902 TokenError: EOF in multi-line statement\n\ni dont know why this happens but it might be related to the missing ) or you have a white space charater you shoudl not have","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"59b6066d11db6d000f3b6e769983bbce46c4df1c","unresolved":true,"context_lines":[{"line_number":198,"context_line":"             \u0027as an extra spec during flavor creation to allow for nvdimm \u0027"},{"line_number":199,"context_line":"             \u0027enabled guest creation.  Example mappings include 2GB, 6GB, \u0027"},{"line_number":200,"context_line":"             \u0027MEDIUM, LARGE\u0027),"},{"line_number":201,"context_line":"    cfg.StrOpt("},{"line_number":202,"context_line":"        \u0027pmem_size\u0027,"},{"line_number":203,"context_line":"        default\u003dNone,"},{"line_number":204,"context_line":"        help\u003d\u0027The expected pmem size allocated to the instance. It requires \u0027"},{"line_number":205,"context_line":"             \u0027an IEC supported unit of measurement, i.e. Kb, Mb, KB, GB, KiB, \u0027"},{"line_number":206,"context_line":"             \u0027GiB, etc. Example format 1GB, 4GiB, 100GB. \u0027"},{"line_number":207,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"c113c70d_4c782f53","line":206,"range":{"start_line":201,"start_character":4,"end_line":206,"end_character":58},"updated":"2020-12-03 22:13:47.000000000","message":"your missing a \")\" here \n\nCould not load \u0027whitebox-tempest-plugin\u0027: closing parenthesis \u0027]\u0027 does not match opening parenthesis \u0027(\u0027 on line 201 (config.py, line 207)\nclosing parenthesis \u0027]\u0027 does not match opening parenthesis \u0027(\u0027 on line 201 (config.py, line 207)","commit_id":"babb497ed668e79bd7e2503c115fc45bcc82ec1e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"41b65c157057d765d137327dace22566c27efd18","unresolved":true,"context_lines":[{"line_number":202,"context_line":"             \u0027CPUs 0 and 1, and NUMA node 1 has CPUs 2 and 3, the value to \u0027"},{"line_number":203,"context_line":"             \u0027set would be `0: [0,1], 1: [2, 3]`.\u0027),"},{"line_number":204,"context_line":"    cfg.StrOpt("},{"line_number":205,"context_line":"        \u0027pmem_flavor_mapping\u0027,"},{"line_number":206,"context_line":"        default\u003dNone,"},{"line_number":207,"context_line":"        help\u003d\u0027The PMEM mapping to the nvdimm namespaces, this value is passed \u0027"},{"line_number":208,"context_line":"             \u0027as an extra spec during flavor creation to allow for nvdimm \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"91e292a1_8660123a","line":205,"updated":"2021-01-25 22:03:23.000000000","message":"Since this is a config option, and we should strive to not change their names after merging the initial version, I\u0027m going to be more nitpicky than usual.\n\nIt\u0027s not really a mapping, is it? More like pmem_flavor_size? I\u0027d also move it to the [whitebox] section, as it doesn\u0027t really describe the hardware environment.","commit_id":"0e90d421ebc9d266a35d5710f8662066e5d7be66"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"c2b8da62b19a24e09d7a35c1966bc4bd83988e2b","unresolved":false,"context_lines":[{"line_number":202,"context_line":"             \u0027CPUs 0 and 1, and NUMA node 1 has CPUs 2 and 3, the value to \u0027"},{"line_number":203,"context_line":"             \u0027set would be `0: [0,1], 1: [2, 3]`.\u0027),"},{"line_number":204,"context_line":"    cfg.StrOpt("},{"line_number":205,"context_line":"        \u0027pmem_flavor_mapping\u0027,"},{"line_number":206,"context_line":"        default\u003dNone,"},{"line_number":207,"context_line":"        help\u003d\u0027The PMEM mapping to the nvdimm namespaces, this value is passed \u0027"},{"line_number":208,"context_line":"             \u0027as an extra spec during flavor creation to allow for nvdimm \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"b04f61b8_9efac4c7","line":205,"in_reply_to":"91e292a1_8660123a","updated":"2021-01-25 22:10:53.000000000","message":"I\u0027m basing this on how its named in TripleO \u0027NovaPMEMMappings\u0027, but in the context of whitebox I agree I think that pmem_flavor_size is a clearer parameter name.","commit_id":"0e90d421ebc9d266a35d5710f8662066e5d7be66"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"41b65c157057d765d137327dace22566c27efd18","unresolved":true,"context_lines":[{"line_number":209,"context_line":"             \u0027enabled guest creation.  Example mappings include 2GB, 6GB, \u0027"},{"line_number":210,"context_line":"             \u0027MEDIUM, LARGE\u0027),"},{"line_number":211,"context_line":"    cfg.StrOpt("},{"line_number":212,"context_line":"        \u0027pmem_size\u0027,"},{"line_number":213,"context_line":"        default\u003dNone,"},{"line_number":214,"context_line":"        help\u003d\u0027The expected pmem size allocated to the instance. It requires \u0027"},{"line_number":215,"context_line":"             \u0027an IEC supported unit of measurement, i.e. Kb, Mb, KB, GB, KiB, \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"aa19c1c6_a0cd4afe","line":212,"updated":"2021-01-25 22:03:23.000000000","message":"And so this could become pmem_expected_size or something.","commit_id":"0e90d421ebc9d266a35d5710f8662066e5d7be66"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"c2b8da62b19a24e09d7a35c1966bc4bd83988e2b","unresolved":false,"context_lines":[{"line_number":209,"context_line":"             \u0027enabled guest creation.  Example mappings include 2GB, 6GB, \u0027"},{"line_number":210,"context_line":"             \u0027MEDIUM, LARGE\u0027),"},{"line_number":211,"context_line":"    cfg.StrOpt("},{"line_number":212,"context_line":"        \u0027pmem_size\u0027,"},{"line_number":213,"context_line":"        default\u003dNone,"},{"line_number":214,"context_line":"        help\u003d\u0027The expected pmem size allocated to the instance. It requires \u0027"},{"line_number":215,"context_line":"             \u0027an IEC supported unit of measurement, i.e. Kb, Mb, KB, GB, KiB, \u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ba4dee8_5f9ac1ad","line":212,"in_reply_to":"aa19c1c6_a0cd4afe","updated":"2021-01-25 22:10:53.000000000","message":"Done","commit_id":"0e90d421ebc9d266a35d5710f8662066e5d7be66"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"74024a84fbc29f4e0ce9027ee0d74195665bcfcc","unresolved":true,"context_lines":[{"line_number":209,"context_line":"             \u0027CPUs 0 and 1, and NUMA node 1 has CPUs 2 and 3, the value to \u0027"},{"line_number":210,"context_line":"             \u0027set would be `0: [0,1], 1: [2, 3]`.\u0027),"},{"line_number":211,"context_line":"    cfg.StrOpt("},{"line_number":212,"context_line":"        \u0027pmem_expected_size\u0027,"},{"line_number":213,"context_line":"        default\u003dNone,"},{"line_number":214,"context_line":"        help\u003d\u0027The expected pmem size allocated to the instance. It requires \u0027"},{"line_number":215,"context_line":"             \u0027an IEC supported unit of measurement, i.e. Kb, Mb, KB, GB, KiB, \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"645ed463_cfc8b81b","line":212,"updated":"2021-01-25 22:35:45.000000000","message":"I was kinda assuming this would get moved to [whitebox] as well?","commit_id":"be95f4cb89fbffbbbf37c092561fa0e692b78d3a"},{"author":{"_account_id":31033,"name":"James Parker","email":"jparker@redhat.com","username":"jparker"},"change_message_id":"fa65526c4b1b5184353af5326e15c05507f84f2a","unresolved":false,"context_lines":[{"line_number":209,"context_line":"             \u0027CPUs 0 and 1, and NUMA node 1 has CPUs 2 and 3, the value to \u0027"},{"line_number":210,"context_line":"             \u0027set would be `0: [0,1], 1: [2, 3]`.\u0027),"},{"line_number":211,"context_line":"    cfg.StrOpt("},{"line_number":212,"context_line":"        \u0027pmem_expected_size\u0027,"},{"line_number":213,"context_line":"        default\u003dNone,"},{"line_number":214,"context_line":"        help\u003d\u0027The expected pmem size allocated to the instance. It requires \u0027"},{"line_number":215,"context_line":"             \u0027an IEC supported unit of measurement, i.e. Kb, Mb, KB, GB, KiB, \u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"2f6cb4d5_e24c3d10","line":212,"in_reply_to":"645ed463_cfc8b81b","updated":"2021-01-25 22:42:30.000000000","message":"Yes this should move up as well, it doesn\u0027t truly describe the underlying hardware like say vgpu_vendor_id or cpu_topolgy.","commit_id":"be95f4cb89fbffbbbf37c092561fa0e692b78d3a"}]}
