)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"28dcf252fb2aacf634d02b0e6b45d769f6f906d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"92a27fe2_0a52b00d","updated":"2024-04-15 16:57:15.000000000","message":"Here\u0027s a proposal for the service-too-old checkin/disable stuff. Comments on the logic in this patch?\n\nThe latter two are just there to prove it works, but need tests and a conf override knob first of course.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b53d6b414659af49ed0bc5c6ad9a6c6acd57ded7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"edd7ea7c_2b965350","updated":"2024-04-15 17:38:48.000000000","message":"i dont hate this algorthim\ni guess i need to look at the follow up pathces to see how you have used it but\nthis is more or less what i was sugesing \n\ntake our contrat (1 SLUPR aka 2 releases) and double it.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ccc6a63c08af00687b7edd943e754789bb65aac5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d11988ce_70497fec","updated":"2024-04-16 14:06:36.000000000","message":"logic looks OK to me","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"}],"nova/objects/service.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b53d6b414659af49ed0bc5c6ad9a6c6acd57ded7","unresolved":true,"context_lines":[{"line_number":283,"context_line":"    \"\"\""},{"line_number":284,"context_line":"    names \u003d {v: k for k, v in SERVICE_VERSION_ALIASES.items()}"},{"line_number":285,"context_line":"    # NOTE(danms): In Python 3.7+ dictionary keys are ordered, so we can"},{"line_number":286,"context_line":"    # depend on this giving us the same ordering every time."},{"line_number":287,"context_line":"    names_in_order \u003d list(SERVICE_VERSION_ALIASES.keys())"},{"line_number":288,"context_line":"    vers_in_order \u003d list(SERVICE_VERSION_ALIASES.values())"},{"line_number":289,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"a980e3da_74ebe1a6","line":286,"updated":"2024-04-15 17:38:48.000000000","message":"yes they are.\nbeyond the performance impovement that is proably the nicest thing python has given us since 3.5\n\nfstring are nice too but preserving insertion order in dictonaries was a better ux improvment IMO.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"81ab48fa4db65c1cab954acb2029c58ebfdfdab5","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    \"\"\""},{"line_number":284,"context_line":"    names \u003d {v: k for k, v in SERVICE_VERSION_ALIASES.items()}"},{"line_number":285,"context_line":"    # NOTE(danms): In Python 3.7+ dictionary keys are ordered, so we can"},{"line_number":286,"context_line":"    # depend on this giving us the same ordering every time."},{"line_number":287,"context_line":"    names_in_order \u003d list(SERVICE_VERSION_ALIASES.keys())"},{"line_number":288,"context_line":"    vers_in_order \u003d list(SERVICE_VERSION_ALIASES.values())"},{"line_number":289,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"451d53ad_bf187f54","line":286,"in_reply_to":"a980e3da_74ebe1a6","updated":"2024-04-24 16:41:46.000000000","message":"Acknowledged","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b53d6b414659af49ed0bc5c6ad9a6c6acd57ded7","unresolved":true,"context_lines":[{"line_number":288,"context_line":"    vers_in_order \u003d list(SERVICE_VERSION_ALIASES.values())"},{"line_number":289,"context_line":"    try:"},{"line_number":290,"context_line":"        supported \u003d names_in_order.index(OLDEST_SUPPORTED_SERVICE_VERSION)"},{"line_number":291,"context_line":"        ancient_version \u003d vers_in_order[supported - 2]"},{"line_number":292,"context_line":"    except IndexError:"},{"line_number":293,"context_line":"        oldest_version \u003d SERVICE_VERSION_ALIASES["},{"line_number":294,"context_line":"            OLDEST_SUPPORTED_SERVICE_VERSION]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ae13119c_b66dfccc","line":291,"updated":"2024-04-15 17:38:48.000000000","message":"ok so this is basically 2 SLURP releases more or less since OLDEST_SUPPORTED_SERVICE_VERSION shoudl be the previous slurp release.\n\nso today that would be antelope right?\nin this specific case that is still verion 66 by luck\nbut it could have been diffent if we had addtional service version in between.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ede0684dca854a7c7f679ea87e059f373176a6f5","unresolved":true,"context_lines":[{"line_number":288,"context_line":"    vers_in_order \u003d list(SERVICE_VERSION_ALIASES.values())"},{"line_number":289,"context_line":"    try:"},{"line_number":290,"context_line":"        supported \u003d names_in_order.index(OLDEST_SUPPORTED_SERVICE_VERSION)"},{"line_number":291,"context_line":"        ancient_version \u003d vers_in_order[supported - 2]"},{"line_number":292,"context_line":"    except IndexError:"},{"line_number":293,"context_line":"        oldest_version \u003d SERVICE_VERSION_ALIASES["},{"line_number":294,"context_line":"            OLDEST_SUPPORTED_SERVICE_VERSION]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7d27ab44_8bbacde2","line":291,"in_reply_to":"0c8c93d8_d3610bc6","updated":"2024-04-15 17:45:45.000000000","message":"correct although by convention i think we have only been moving OLDEST_SUPPORTED_SERVICE_VERSION on slups but then again i dont think we really have written that down.\n\neffectivly i expect OLDEST_SUPPORTED_SERVICE_VERSION to be pinned to the previous slurp but maybe that is just me.\n\nthe next time i expect that to be bumped is the F release and i expect it to be bumped to the E 2025.1 release.\n\nagain that could just be me and not what others expect.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a1228a517bebd7066a270de78e3277e0139e1843","unresolved":true,"context_lines":[{"line_number":288,"context_line":"    vers_in_order \u003d list(SERVICE_VERSION_ALIASES.values())"},{"line_number":289,"context_line":"    try:"},{"line_number":290,"context_line":"        supported \u003d names_in_order.index(OLDEST_SUPPORTED_SERVICE_VERSION)"},{"line_number":291,"context_line":"        ancient_version \u003d vers_in_order[supported - 2]"},{"line_number":292,"context_line":"    except IndexError:"},{"line_number":293,"context_line":"        oldest_version \u003d SERVICE_VERSION_ALIASES["},{"line_number":294,"context_line":"            OLDEST_SUPPORTED_SERVICE_VERSION]"}],"source_content_type":"text/x-python","patch_set":1,"id":"f02f71f0_69fdbeed","line":291,"in_reply_to":"2cab125e_88b3e395","updated":"2024-04-24 16:01:35.000000000","message":"But that OLDEST version is the oldest one we *actually* support. We could add yet another thing that we have to manually update each release, but I don\u0027t think that\u0027s really necessary. \"Two older than $OLDEST\" is what we discussed at PTG, IIRC.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"04428ffa901fcd8254da20c3625da967fca7a184","unresolved":true,"context_lines":[{"line_number":288,"context_line":"    vers_in_order \u003d list(SERVICE_VERSION_ALIASES.values())"},{"line_number":289,"context_line":"    try:"},{"line_number":290,"context_line":"        supported \u003d names_in_order.index(OLDEST_SUPPORTED_SERVICE_VERSION)"},{"line_number":291,"context_line":"        ancient_version \u003d vers_in_order[supported - 2]"},{"line_number":292,"context_line":"    except IndexError:"},{"line_number":293,"context_line":"        oldest_version \u003d SERVICE_VERSION_ALIASES["},{"line_number":294,"context_line":"            OLDEST_SUPPORTED_SERVICE_VERSION]"}],"source_content_type":"text/x-python","patch_set":1,"id":"2cab125e_88b3e395","line":291,"in_reply_to":"7d27ab44_8bbacde2","updated":"2024-04-24 15:59:13.000000000","message":"I personally prefer using the hard-coded OLDEST_ALLOWED_SERVICE_VERSION, assuming we may bump the version with actual cleaning up of compatibility code, but I\u0027m also ok with the auto detection approach.\n\nAs Sean mentioned we may be able to narrow the range to exclude non-SLURP rleease but IMO the current logic would be enough as long as we guarantee 2-SLURPS minimum requirements.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b0547c27a3c1d4a3f07bdfbcc13c7ac66ac64932","unresolved":true,"context_lines":[{"line_number":288,"context_line":"    vers_in_order \u003d list(SERVICE_VERSION_ALIASES.values())"},{"line_number":289,"context_line":"    try:"},{"line_number":290,"context_line":"        supported \u003d names_in_order.index(OLDEST_SUPPORTED_SERVICE_VERSION)"},{"line_number":291,"context_line":"        ancient_version \u003d vers_in_order[supported - 2]"},{"line_number":292,"context_line":"    except IndexError:"},{"line_number":293,"context_line":"        oldest_version \u003d SERVICE_VERSION_ALIASES["},{"line_number":294,"context_line":"            OLDEST_SUPPORTED_SERVICE_VERSION]"}],"source_content_type":"text/x-python","patch_set":1,"id":"0c8c93d8_d3610bc6","line":291,"in_reply_to":"ae13119c_b66dfccc","updated":"2024-04-15 17:41:08.000000000","message":"We don\u0027t have annotations above to determine which are slurp or not, so I\u0027m just taking \"two older than the current oldest supported\". For non-SLURPs that will overshoot a bit, but should be right for SLURPs.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"81ab48fa4db65c1cab954acb2029c58ebfdfdab5","unresolved":true,"context_lines":[{"line_number":288,"context_line":"    vers_in_order \u003d list(SERVICE_VERSION_ALIASES.values())"},{"line_number":289,"context_line":"    try:"},{"line_number":290,"context_line":"        supported \u003d names_in_order.index(OLDEST_SUPPORTED_SERVICE_VERSION)"},{"line_number":291,"context_line":"        ancient_version \u003d vers_in_order[supported - 2]"},{"line_number":292,"context_line":"    except IndexError:"},{"line_number":293,"context_line":"        oldest_version \u003d SERVICE_VERSION_ALIASES["},{"line_number":294,"context_line":"            OLDEST_SUPPORTED_SERVICE_VERSION]"}],"source_content_type":"text/x-python","patch_set":1,"id":"ed869cb4_0441d3cd","line":291,"in_reply_to":"f02f71f0_69fdbeed","updated":"2024-04-24 16:41:46.000000000","message":"so to reinfice dan\u0027s point we only supprot 1 slurp of a delta not 2\nso im suggesting we keep supprot for 2 slurp more as a nice to have rahte rthen somethign we support offically or otherwise\n\n\nso we can have \n\nOLDEST_SUPPORTED_SERVICE_VERSION\nand \nOLDEST_UNSUPPORTED_SERVICE_VERSION instead of ancient_version\nif you really want but im fine with the nameing that dan currently has\n\ni dont want to imply that we expect the ancient_version to actully work\nit proably will if we have pinned the rpc version and have not had a major\nrpc release in the interval.\n\nbut we wont be testing the ancient_version or that a compute that is 2 slurps old works so i want to keep OLDEST_ALLOWED_SERVICE_VERSION pointing at the previous SLURP","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"}],"nova/tests/unit/objects/test_service.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b53d6b414659af49ed0bc5c6ad9a6c6acd57ded7","unresolved":true,"context_lines":[{"line_number":575,"context_line":"        # versions are the same. So check that it specifically returns the"},{"line_number":576,"context_line":"        # expected (same) version, even though that older release was also"},{"line_number":577,"context_line":"        # version 66."},{"line_number":578,"context_line":"        self.assertEqual(66, service.determine_ancient_service_version())"},{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    @mock.patch(\u0027nova.objects.service.OLDEST_SUPPORTED_SERVICE_VERSION\u0027,"},{"line_number":581,"context_line":"                new\u003d\u0027Antelope\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"d9209f53_f55bddeb","line":578,"updated":"2024-04-15 17:38:48.000000000","message":"ok ya that is 66","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b53d6b414659af49ed0bc5c6ad9a6c6acd57ded7","unresolved":true,"context_lines":[{"line_number":582,"context_line":"    def test_determine_ancient_service_version_antelope(self):"},{"line_number":583,"context_line":"        # As an example, check that the ancient version from Antelope would"},{"line_number":584,"context_line":"        # have been Yoga (61)."},{"line_number":585,"context_line":"        self.assertEqual(61, service.determine_ancient_service_version())"}],"source_content_type":"text/x-python","patch_set":1,"id":"24c4449c_526bd786","line":585,"updated":"2024-04-15 17:38:48.000000000","message":"and here you are faking it by setting OLDEST_SUPPORTED_SERVICE_VERSION to Antelope to show that it does actully work and select 2 release older i.e. yoga.\n\nminor nit being you have not tested the excpetion case where you cant find the older veriosn but this patch is still WIP so thats fine.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b0547c27a3c1d4a3f07bdfbcc13c7ac66ac64932","unresolved":true,"context_lines":[{"line_number":582,"context_line":"    def test_determine_ancient_service_version_antelope(self):"},{"line_number":583,"context_line":"        # As an example, check that the ancient version from Antelope would"},{"line_number":584,"context_line":"        # have been Yoga (61)."},{"line_number":585,"context_line":"        self.assertEqual(61, service.determine_ancient_service_version())"}],"source_content_type":"text/x-python","patch_set":1,"id":"9dbf2011_0c07f382","line":585,"in_reply_to":"24c4449c_526bd786","updated":"2024-04-15 17:41:08.000000000","message":"Oh yep, will add, thanks.","commit_id":"4b1c5f7080345769eb7d0a739f405a04f60cca61"}]}
