)]}'
{"id":"openstack%2Fgrenade~426310","triplet_id":"openstack%2Fgrenade~master~I6f7176b26c1bbf94be15b2aeffb86140ff6fdbaf","project":"openstack/grenade","branch":"master","topic":"verify-nova-services","hashtags":[],"change_id":"I6f7176b26c1bbf94be15b2aeffb86140ff6fdbaf","subject":"Make nova verify compute service count after upgrade","status":"ABANDONED","created":"2017-01-27 17:17:17.000000000","updated":"2017-01-31 19:13:28.000000000","total_comment_count":3,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"f870ef1521aec66699cb81c0596c1b6562d74942","_number":426310,"virtual_id_number":426310,"owner":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"actions":{},"labels":{"Verified":{"all":[{"_account_id":22226,"name":"Varun Gadiraju","email":"varun.gadiraju@intel.com","username":"gadirajv"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},{"date":"2017-01-31 18:36:23.000000000","_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"date":"2017-01-31 18:51:17.000000000","_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},{"date":"2017-01-31 18:54:06.000000000","_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"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":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22226,"name":"Varun Gadiraju","email":"varun.gadiraju@intel.com","username":"gadirajv"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"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":{"all":[{"_account_id":22226,"name":"Varun Gadiraju","email":"varun.gadiraju@intel.com","username":"gadirajv"},{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":22226,"name":"Varun Gadiraju","email":"varun.gadiraju@intel.com","username":"gadirajv"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},{"_account_id":22226,"name":"Varun Gadiraju","email":"varun.gadiraju@intel.com","username":"gadirajv"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2017-01-28 00:30:50.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"},{"updated":"2017-01-31 18:05:55.000000000","updated_by":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"reviewer":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"state":"REVIEWER"},{"updated":"2017-01-31 18:27:10.000000000","updated_by":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"reviewer":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"state":"REVIEWER"},{"updated":"2017-01-31 18:27:18.000000000","updated_by":{"_account_id":22226,"name":"Varun Gadiraju","email":"varun.gadiraju@intel.com","username":"gadirajv"},"reviewer":{"_account_id":22226,"name":"Varun Gadiraju","email":"varun.gadiraju@intel.com","username":"gadirajv"},"state":"REVIEWER"},{"updated":"2017-01-31 18:51:17.000000000","updated_by":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"reviewer":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"state":"REVIEWER"},{"updated":"2017-01-31 18:54:06.000000000","updated_by":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"reviewer":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"state":"REVIEWER"}],"messages":[{"id":"f5865c44e5506acccb655762ab45622251903a53","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2017-01-27 17:17:17.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f03609c6163c64fdfb30e2ba0d47aae387fe1390","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-01-27 18:33:28.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-grenade-dsvm-neutron-ubuntu-xenial http://logs.openstack.org/10/426310/1/check/gate-grenade-dsvm-neutron-ubuntu-xenial/8fb1bb6/ : SUCCESS in 32m 31s\n- gate-grenade-dsvm-heat-ubuntu-xenial-nv http://logs.openstack.org/10/426310/1/check/gate-grenade-dsvm-heat-ubuntu-xenial-nv/b031a4b/ : SUCCESS in 54m 57s (non-voting)\n- gate-grenade-dsvm-neutron-multinode-ubuntu-xenial http://logs.openstack.org/10/426310/1/check/gate-grenade-dsvm-neutron-multinode-ubuntu-xenial/4e4b08b/ : SUCCESS in 1h 08m 06s\n- gate-grenade-publish-docs http://logs.openstack.org/10/426310/1/check/gate-grenade-publish-docs/90c454d/ : SUCCESS in 1m 42s\n- gate-grenade-dsvm-ironic-ubuntu-xenial-nv http://logs.openstack.org/10/426310/1/check/gate-grenade-dsvm-ironic-ubuntu-xenial-nv/410760e/ : FAILURE in 1h 14m 34s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"9b9e8aabff06a03fb552df9e53d96b44c32e26de","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2017-01-27 23:08:55.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"cfa00b5fc0327f25ebd30057effb30fa94d7d609","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-01-28 00:30:50.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-grenade-dsvm-neutron-ubuntu-xenial http://logs.openstack.org/10/426310/2/check/gate-grenade-dsvm-neutron-ubuntu-xenial/ce7c4de/ : SUCCESS in 32m 25s\n- gate-grenade-dsvm-heat-ubuntu-xenial-nv http://logs.openstack.org/10/426310/2/check/gate-grenade-dsvm-heat-ubuntu-xenial-nv/fba14d7/ : SUCCESS in 32m 44s (non-voting)\n- gate-grenade-dsvm-neutron-multinode-ubuntu-xenial http://logs.openstack.org/10/426310/2/check/gate-grenade-dsvm-neutron-multinode-ubuntu-xenial/62b6991/ : SUCCESS in 38m 13s\n- gate-grenade-publish-docs http://logs.openstack.org/10/426310/2/check/gate-grenade-publish-docs/5a07040/ : SUCCESS in 1m 39s\n- gate-grenade-dsvm-ironic-ubuntu-xenial-nv http://logs.openstack.org/10/426310/2/check/gate-grenade-dsvm-ironic-ubuntu-xenial-nv/0cef1fe/ : SUCCESS in 1h 19m 19s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"120d3119f87dfb31391685cc4e6abce543edb456","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2017-01-31 18:04:59.000000000","message":"Patch Set 2:\n\n(1 comment)\n\naaaand, here is an example of why we need this:\n\nhttp://logs.openstack.org/79/396679/45/check/gate-grenade-dsvm-neutron-multinode-ubuntu-xenial/11607f2/logs/grenade.sh.txt.gz#_2017-01-30_09_54_13_227\n\nThe above is us racing to run the cells setup (specifically the discover_hosts bit) before the compute node has registered. We really need to do this service up-ness check before we get too far into the upgrade, so I think it should go in verify_noapi.","accounts_in_message":[],"_revision_number":2},{"id":"0ed0e5db5defe645f1041a48447b7e165fe3b828","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2017-01-31 18:35:35.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"4fba9191865edaa326b3abba1a4bf219665dd41d","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2017-01-31 18:36:23.000000000","message":"Patch Set 3:\n\nI know this can\u0027t merge until it becomes an emergency, but I\u0027m just keeping it fresh with things it needs as I think of them. I\u0027m expecting that when this does become an emergency, I won\u0027t have the context in my head still.","accounts_in_message":[],"_revision_number":3},{"id":"4029205a658b21c68dea3d3d4d6ecf226d92d607","author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"date":"2017-01-31 18:51:17.000000000","message":"Patch Set 3:\n\n(2 comments)\n\nDan thanks for the patch, looks reasonable for me, have a few questions","accounts_in_message":[],"_revision_number":3},{"id":"68d750f328c1abdf76d76ebc0dffc0b15b4cea3f","author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"date":"2017-01-31 18:54:06.000000000","message":"Patch Set 3:\n\nso http://logs.openstack.org/79/396679/45/check/gate-grenade-dsvm-neutron-multinode-ubuntu-xenial/11607f2/logs/grenade.sh.txt.gz#_2017-01-30_09_54_13_227 isn\u0027t actually fixed by this patch, given that is the base run failing, which is L270 in grenade.sh, and all the code here executes after L283.\n\nMy general take on maintaining this code base is that the whole process is complicated enough, so we should really be doing the minimal amount of effort here to ensure that we don\u0027t land code that should break but instead passes.\n\nIn a typically grenade run the time from completing the nova upgrade run, to interacting with services is 1 to 2 minutes. The checkin window on the subnode is every 60 seconds. That means there is possibly and intersection of those. But it\u0027s quite remote.\n\nHowever, this is overloading the resources concept and saying \"this is a place for arbitrary service checks\", which semantically it shouldn\u0027t be. This whole mechanism is about resources the service builds that need to be maintained. Given the few folks that understand the code, overloading any of those constructs makes it really hard to maintain in the future.\n\nIf we need a more generic \"sanity check\" phase for services, that would be fine. That should live outside the scope of the resource api definition, so that stays somewhat pure and simple about what it\u0027s trying to do.\n\nAlso, those sorts of thing need a to come with a bunch of content explaining why to folks that aren\u0027t familiar with Nova internals.","accounts_in_message":[],"_revision_number":3},{"id":"524288edf168ddb795d5e554e9ede82424d138eb","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2017-01-31 19:13:28.000000000","message":"Abandoned","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"669c91bade22c479c397d9a25fd31fc0816a75ff","revisions":{"6271ac6b7bf1d5cd59f27c712090d22efbeb0265":{"kind":"REWORK","_number":1,"created":"2017-01-27 17:17:17.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/10/426310/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/grenade","ref":"refs/changes/10/426310/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/grenade refs/changes/10/426310/1"}}},"commit":{"parents":[{"commit":"1bc3d889c1a3e2b423c55b0a3804f9eabcff3ea8","subject":"doc: Add a note about communicating exceptions to other teams","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/1bc3d889c1a3e2b423c55b0a3804f9eabcff3ea8"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2017-01-27 17:21:31.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2017-01-27 17:24:40.000000000","tz":-480},"subject":"Make nova verify compute service count after upgrade","message":"Make nova verify compute service count after upgrade\n\nIn multinode, we have a subnode that is somewhat orphaned for a while\nduring the upgrade. It is running and expects to be able to update\nits service health records, but is unable to do so because the\nconductor it relies on to do that is offline with the primary node.\nThus, we have a race between those services coming back online and\nthe subnode being able to check itself in again, and things that may\nrequire all computes to be online. Such is the case with nova-scheduler\nin Ocata.\n\nThis patch counts the number of online compute services before we\nstart the upgrade and makes sure that the same number come online\nafter the upgrade. If not, we fail before continuing.\n\nChange-Id: I6f7176b26c1bbf94be15b2aeffb86140ff6fdbaf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/6271ac6b7bf1d5cd59f27c712090d22efbeb0265"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/6271ac6b7bf1d5cd59f27c712090d22efbeb0265"}]},"branch":"refs/heads/master"},"f1cbc919488669ce2b1c119955205de4817712df":{"kind":"REWORK","_number":2,"created":"2017-01-27 23:08:55.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/10/426310/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/grenade","ref":"refs/changes/10/426310/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/grenade refs/changes/10/426310/2"}}},"commit":{"parents":[{"commit":"1bc3d889c1a3e2b423c55b0a3804f9eabcff3ea8","subject":"doc: Add a note about communicating exceptions to other teams","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/1bc3d889c1a3e2b423c55b0a3804f9eabcff3ea8"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2017-01-27 17:21:31.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2017-01-27 23:16:18.000000000","tz":-480},"subject":"Make nova verify compute service count after upgrade","message":"Make nova verify compute service count after upgrade\n\nIn multinode, we have a subnode that is somewhat orphaned for a while\nduring the upgrade. It is running and expects to be able to update\nits service health records, but is unable to do so because the\nconductor it relies on to do that is offline with the primary node.\nThus, we have a race between those services coming back online and\nthe subnode being able to check itself in again, and things that may\nrequire all computes to be online. Such is the case with nova-scheduler\nin Ocata.\n\nThis patch counts the number of online compute services before we\nstart the upgrade and makes sure that the same number come online\nafter the upgrade. If not, we fail before continuing.\n\nChange-Id: I6f7176b26c1bbf94be15b2aeffb86140ff6fdbaf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/f1cbc919488669ce2b1c119955205de4817712df"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/f1cbc919488669ce2b1c119955205de4817712df"}]},"branch":"refs/heads/master"},"669c91bade22c479c397d9a25fd31fc0816a75ff":{"kind":"REWORK","_number":3,"created":"2017-01-31 18:35:35.000000000","uploader":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"ref":"refs/changes/10/426310/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/grenade","ref":"refs/changes/10/426310/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/grenade refs/changes/10/426310/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/grenade refs/changes/10/426310/3"}}},"commit":{"parents":[{"commit":"a1ea5cec068d59b9c2caa1c82d7ee2584d63aa08","subject":"Run the placement service when upgrading to Ocata","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/a1ea5cec068d59b9c2caa1c82d7ee2584d63aa08"}]}],"author":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2017-01-27 17:21:31.000000000","tz":-480},"committer":{"name":"Dan Smith","email":"dansmith@redhat.com","date":"2017-01-31 18:22:30.000000000","tz":-480},"subject":"Make nova verify compute service count after upgrade","message":"Make nova verify compute service count after upgrade\n\nIn multinode, we have a subnode that is somewhat orphaned for a while\nduring the upgrade. It is running and expects to be able to update\nits service health records, but is unable to do so because the\nconductor it relies on to do that is offline with the primary node.\nThus, we have a race between those services coming back online and\nthe subnode being able to check itself in again, and things that may\nrequire all computes to be online. Such is the case with nova-scheduler\nin Ocata.\n\nThis patch counts the number of online compute services before we\nstart the upgrade and makes sure that the same number come online\nafter the upgrade. If not, we fail before continuing. This also has\nthe benfit of delaying us from continuing until we have all compute\nnodes online, so that we have a chance to fully map them all. In the case\nwhere this delay saves us from missing a compute node, we run\ndiscover_hosts during post-upgrade to map any nodes which hadn\u0027t come\nonline by the time simple_cell_setup was run initially (which would\nhave been before we waited for compute nodes to come up).\n\nChange-Id: I6f7176b26c1bbf94be15b2aeffb86140ff6fdbaf\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/669c91bade22c479c397d9a25fd31fc0816a75ff"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/grenade/commit/669c91bade22c479c397d9a25fd31fc0816a75ff"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
