)]}'
{"id":"openstack%2Fvitrage~962713","triplet_id":"openstack%2Fvitrage~stable%2F2024.1~If629023052aa2c067c419bba10837f77bcc3e59c","project":"openstack/vitrage","branch":"stable/2024.1","hashtags":[],"change_id":"If629023052aa2c067c419bba10837f77bcc3e59c","subject":"Replace eval with function matching","status":"MERGED","created":"2025-10-01 18:51:49.000000000","updated":"2025-10-01 19:46:59.000000000","submitted":"2025-10-01 19:46:07.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"962713","cherry_pick_of_change":962658,"cherry_pick_of_patch_set":1,"meta_rev_id":"a484682f2093dc13f38c88bfe90172606c5b6efe","_number":962713,"virtual_id_number":962713,"owner":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-10-01 19:46:07.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":2,"date":"2025-10-01 19:15:34.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"all":[{"value":1,"date":"2025-10-01 19:15:34.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-10-01 19:33:35.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"235a660438f2950b1cac49495dfd08e155582006","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2025-10-01 18:51:49.000000000","message":"Patch Set 1: Cherry Picked from branch stable/2025.2.","accounts_in_message":[],"_revision_number":1},{"id":"c27196936fc1df8ed776fcc7f498e367cce659cb","author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"date":"2025-10-01 19:15:34.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"c40851568b268ed725314f37df95ba0309f3dc23","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-01 19:33:35.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/15367ec1a8b746ccbb1416a9c28b62c5\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f84c739727844fafa2197a4df51a537e : SUCCESS in 4m 11s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/f2bf12a91c294d0dbe6b67ee206bff1b : SUCCESS in 4m 17s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f6c54f3462b645eb8f2a52348484a556 : SUCCESS in 4m 01s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/112fe4908940464aa792424993a9cf1d : SUCCESS in 4m 48s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8ffee7b5ba70401798b4b03f78b343db : SUCCESS in 3m 26s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3a09be298faf495392823ebf235f60b9 : SUCCESS in 4m 13s\n- vitrage-tempest-plugin-api https://zuul.opendev.org/t/openstack/build/e8fbaaaedd5144c6bb8e88ec0d961819 : FAILURE in 36m 22s (non-voting)\n- vitrage-tempest-plugin-api-ipv6-only https://zuul.opendev.org/t/openstack/build/8214385752f84d33bb9c3ab737bc3814 : FAILURE in 19m 38s (non-voting)\n- vitrage-tempest-plugin-datasources https://zuul.opendev.org/t/openstack/build/4aadc55e75794645ac44ff5a9780d2fb : FAILURE in 37m 25s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"69f64d7e662bd1cc5884af23a7b5e4db6e3943ce","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-01 19:33:43.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"c6d5a6a941388dd6895f5a8b6e661f04b1a1fd52","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-01 19:46:07.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/de7e267f71f144c6b0ede58ba84c7717\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e43890ca0eef4d1cb02bc21d84712efe : SUCCESS in 3m 21s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/4b96f2e1dec4435dbd78edce8f192268 : SUCCESS in 4m 50s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/666cbf03c43e459d8a749125eac13249 : SUCCESS in 3m 58s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/88b5f3f5cfab4bee8425e333822b40f1 : SUCCESS in 5m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8343e39a8f684598a5e258f1e231c747 : SUCCESS in 4m 02s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3d4ba931fc7245f8a4a3c7aececebd85 : SUCCESS in 2m 35s","accounts_in_message":[],"_revision_number":1},{"id":"224ae0b2b5fd64dad1a3e29a6ca3415c076cd0b2","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-01 19:46:07.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"a484682f2093dc13f38c88bfe90172606c5b6efe","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-01 19:46:59.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/590d7ca2fbee46ea9ae98d18760c7632\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4d49a61b4e9643f08d9c0475627233a0 : SUCCESS in 40s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a821e4f5e3d648b786dd249ee7c19596 : SUCCESS in 37s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"6520c2d9d0ba690ea9f96dc31414c7afd40e9f02","revisions":{"6520c2d9d0ba690ea9f96dc31414c7afd40e9f02":{"kind":"REWORK","_number":1,"created":"2025-10-01 18:51:49.000000000","uploader":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"ref":"refs/changes/13/962713/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/vitrage","ref":"refs/changes/13/962713/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/vitrage refs/changes/13/962713/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/vitrage refs/changes/13/962713/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/vitrage refs/changes/13/962713/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/vitrage refs/changes/13/962713/1"}}},"commit":{"parents":[{"commit":"b0897249e861b37e7c57573cd4c15cf08f8ec069","subject":"Add unit testing for graph.query","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/vitrage/commit/b0897249e861b37e7c57573cd4c15cf08f8ec069"}]}],"author":{"name":"Dmitriy Rabotyagov","email":"dmitriy@adria-cloud.com","date":"2025-09-30 18:46:39.000000000","tz":120},"committer":{"name":"Dmitriy Rabotyagov","email":"dmitriy@adria-cloud.com","date":"2025-10-01 18:51:49.000000000","tz":0},"subject":"Replace eval with function matching","message":"Replace eval with function matching\n\nUsing eval in code is not safe and may lead to security\nrisks, especially given that query itself is supplied by a user.\n\nThis refactors the code making is presumably safe\nand prone to code injections, which are possible with eval.\n\nStory: 2011539\nTask: 52866\nChange-Id: If629023052aa2c067c419bba10837f77bcc3e59c\nSigned-off-by: Dmitriy Rabotyagov \u003cdmitriy@adria-cloud.com\u003e\n(cherry picked from commit 5b57e2b32a6d02992a28d9a671ebba5e308fd141)\n(cherry picked from commit 89df4bd2ffda1a5ddea66cd828438a6a171a3b11)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/vitrage/commit/6520c2d9d0ba690ea9f96dc31414c7afd40e9f02"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/vitrage/commit/6520c2d9d0ba690ea9f96dc31414c7afd40e9f02"}]},"branch":"refs/heads/stable/2024.1"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
