)]}'
{"id":"openstack%2Fnova~731396","triplet_id":"openstack%2Fnova~master~I3fa1667cb2570303d166453a2d10a3c146b6606f","project":"openstack/nova","branch":"master","hashtags":[],"change_id":"I3fa1667cb2570303d166453a2d10a3c146b6606f","subject":"Add nova healthcheck API","status":"ABANDONED","created":"2020-05-28 03:23:44.000000000","updated":"2024-08-12 20:29:41.000000000","total_comment_count":51,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"6485e9ddceecaa22e454e3122cbafabad486ea54","_number":731396,"virtual_id_number":731396,"owner":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"_account_id":9732,"name":"Mellanox CI","email":"mlnx-openstack-ci@dev.mellanox.co.il","username":"mellanox","tags":["SERVICE_USER"]},{"_account_id":15941,"name":"DellEMC PowerFlex CI","email":"emc.scaleio.ci@emc.com","username":"emc-scaleio-ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"date":"2020-10-07 10:06:09.000000000","_account_id":15751,"name":"Intel PCI CI","email":"pci-ci@intel.com","username":"intelpcici","tags":["SERVICE_USER"]},{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},{"date":"2020-10-13 15:35:52.000000000","_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":23498,"name":"IBM zVM CI","email":"zvmosci@us.ibm.com","username":"zvmosci"},{"date":"2020-10-07 10:29:14.000000000","_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"},{"date":"2020-10-13 15:23:47.000000000","_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"date":"2020-10-08 14:38:12.000000000","_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"tag":"autogenerated:zuul:check","value":-1,"date":"2020-10-07 13:16:26.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},{"date":"2020-10-07 10:47:22.000000000","_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"date":"2020-10-12 16:44:49.000000000","_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"_account_id":16376,"name":"Intel NFV CI","email":"openstack-nfv-ci@intel.com","username":"intel-nfv-ci","tags":["SERVICE_USER"]},{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9732,"name":"Mellanox CI","email":"mlnx-openstack-ci@dev.mellanox.co.il","username":"mellanox","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15941,"name":"DellEMC PowerFlex CI","email":"emc.scaleio.ci@emc.com","username":"emc-scaleio-ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15751,"name":"Intel PCI CI","email":"pci-ci@intel.com","username":"intelpcici","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},{"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":23498,"name":"IBM zVM CI","email":"zvmosci@us.ibm.com","username":"zvmosci"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":16376,"name":"Intel NFV CI","email":"openstack-nfv-ci@intel.com","username":"intel-nfv-ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"}],"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":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"_account_id":9732,"name":"Mellanox CI","email":"mlnx-openstack-ci@dev.mellanox.co.il","username":"mellanox","tags":["SERVICE_USER"]},{"_account_id":15941,"name":"DellEMC PowerFlex CI","email":"emc.scaleio.ci@emc.com","username":"emc-scaleio-ci","tags":["SERVICE_USER"]},{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"_account_id":15751,"name":"Intel PCI CI","email":"pci-ci@intel.com","username":"intelpcici","tags":["SERVICE_USER"]},{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":23498,"name":"IBM zVM CI","email":"zvmosci@us.ibm.com","username":"zvmosci"},{"_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"_account_id":16376,"name":"Intel NFV CI","email":"openstack-nfv-ci@intel.com","username":"intel-nfv-ci","tags":["SERVICE_USER"]},{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"}],"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":1},"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":9732,"name":"Mellanox CI","email":"mlnx-openstack-ci@dev.mellanox.co.il","username":"mellanox","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":15941,"name":"DellEMC PowerFlex CI","email":"emc.scaleio.ci@emc.com","username":"emc-scaleio-ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":15751,"name":"Intel PCI CI","email":"pci-ci@intel.com","username":"intelpcici","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":23498,"name":"IBM zVM CI","email":"zvmosci@us.ibm.com","username":"zvmosci"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":16376,"name":"Intel NFV CI","email":"openstack-nfv-ci@intel.com","username":"intel-nfv-ci","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},{"_account_id":9732,"name":"Mellanox CI","email":"mlnx-openstack-ci@dev.mellanox.co.il","username":"mellanox","tags":["SERVICE_USER"]},{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},{"_account_id":15751,"name":"Intel PCI CI","email":"pci-ci@intel.com","username":"intelpcici","tags":["SERVICE_USER"]},{"_account_id":15941,"name":"DellEMC PowerFlex CI","email":"emc.scaleio.ci@emc.com","username":"emc-scaleio-ci","tags":["SERVICE_USER"]},{"_account_id":16376,"name":"Intel NFV CI","email":"openstack-nfv-ci@intel.com","username":"intel-nfv-ci","tags":["SERVICE_USER"]},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":23498,"name":"IBM zVM CI","email":"zvmosci@us.ibm.com","username":"zvmosci"},{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},{"_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-05-28 03:24:14.000000000","updated_by":{"_account_id":16376,"name":"Intel NFV CI","email":"openstack-nfv-ci@intel.com","username":"intel-nfv-ci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":16376,"name":"Intel NFV CI","email":"openstack-nfv-ci@intel.com","username":"intel-nfv-ci","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-05-28 03:43:36.000000000","updated_by":{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},"reviewer":{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-05-28 04:20:40.000000000","updated_by":{"_account_id":23498,"name":"IBM zVM CI","email":"zvmosci@us.ibm.com","username":"zvmosci"},"reviewer":{"_account_id":23498,"name":"IBM zVM CI","email":"zvmosci@us.ibm.com","username":"zvmosci"},"state":"REVIEWER"},{"updated":"2020-05-28 04:54:48.000000000","updated_by":{"_account_id":15941,"name":"DellEMC PowerFlex CI","email":"emc.scaleio.ci@emc.com","username":"emc-scaleio-ci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":15941,"name":"DellEMC PowerFlex CI","email":"emc.scaleio.ci@emc.com","username":"emc-scaleio-ci","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-05-28 05:51:39.000000000","updated_by":{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},"reviewer":{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},"state":"REVIEWER"},{"updated":"2020-05-28 06:08:39.000000000","updated_by":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"reviewer":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-05-28 08:09:25.000000000","updated_by":{"_account_id":9732,"name":"Mellanox CI","email":"mlnx-openstack-ci@dev.mellanox.co.il","username":"mellanox","tags":["SERVICE_USER"]},"reviewer":{"_account_id":9732,"name":"Mellanox CI","email":"mlnx-openstack-ci@dev.mellanox.co.il","username":"mellanox","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-05-28 08:39:18.000000000","updated_by":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"reviewer":{"_account_id":136,"name":"Tim Bell","email":"tim.bell@cern.ch","username":"tim-bell"},"state":"REVIEWER"},{"updated":"2020-05-28 17:00:45.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"state":"REVIEWER"},{"updated":"2020-05-29 12:56:32.000000000","updated_by":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"REVIEWER"},{"updated":"2020-05-29 17:44:22.000000000","updated_by":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"reviewer":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"state":"REVIEWER"},{"updated":"2020-06-02 02:33:36.000000000","updated_by":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"reviewer":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"state":"REVIEWER"},{"updated":"2020-06-02 15:48:06.000000000","updated_by":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"reviewer":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"state":"REVIEWER"},{"updated":"2020-10-07 10:06:09.000000000","updated_by":{"_account_id":15751,"name":"Intel PCI CI","email":"pci-ci@intel.com","username":"intelpcici","tags":["SERVICE_USER"]},"reviewer":{"_account_id":15751,"name":"Intel PCI CI","email":"pci-ci@intel.com","username":"intelpcici","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-10-07 10:29:14.000000000","updated_by":{"_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"},"reviewer":{"_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"},"state":"REVIEWER"},{"updated":"2020-10-07 10:47:22.000000000","updated_by":{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},"reviewer":{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2020-10-07 13:16:26.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"},{"updated":"2020-10-12 16:44:49.000000000","updated_by":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"reviewer":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"state":"REVIEWER"},{"updated":"2020-10-13 15:23:47.000000000","updated_by":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"reviewer":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"state":"REVIEWER"},{"updated":"2020-10-13 15:35:52.000000000","updated_by":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"reviewer":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"state":"REVIEWER"}],"messages":[{"id":"6a79abd85fa6619046fdd916661ffaa48428691d","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-05-28 03:23:44.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"d76139cf5ba4cf96d96a86c9705c098e10842b7a","author":{"_account_id":16376,"name":"Intel NFV CI","email":"openstack-nfv-ci@intel.com","username":"intel-nfv-ci","tags":["SERVICE_USER"]},"date":"2020-05-28 03:24:14.000000000","message":"Patch Set 1:\n\nBuild succeeded (check pipeline).\n\n- tempest-dsvm-intel-nfv-xenial tempest-dsvm-intel-nfv-xenial : SKIPPED (non-voting)\n- tempest-dsvm-multinode-ovsdpdk-nfv-networking-xenial tempest-dsvm-multinode-ovsdpdk-nfv-networking-xenial : SKIPPED (non-voting)\n- tempest-dsvm-ovsdpdk-nfv-networking-xenial tempest-dsvm-ovsdpdk-nfv-networking-xenial : SKIPPED (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"3da435c4e0fe9b0856374ca63a902b0a69ca7043","author":{"_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"},"date":"2020-05-28 03:30:53.000000000","message":"Patch Set 1:\n\nBuild failed.\n\n- pmem-tempest-plugin-filtered-multi-node http://52.27.155.124/96/731396/1/check/pmem-tempest-plugin-filtered-multi-node/71414a3/ : RETRY_LIMIT in 1m 29s","accounts_in_message":[],"_revision_number":1},{"id":"220676ba88e50ee73104a95bc05261cfe3aad577","author":{"_account_id":10118,"name":"IBM PowerKVM CI","email":"kvmpower@linux.vnet.ibm.com","username":"powerkvm","tags":["SERVICE_USER"]},"date":"2020-05-28 03:43:36.000000000","message":"Patch Set 1:\n\nBuild failed. Test completed on IBM PowerKVM platform. For rechecking only on the IBM PowerKVM CI, add a review comment with pkvm- recheck. For contact and more information, see https://wiki.openstack.org/wiki/PowerKVM\n\n- tempest-dsvm-full-bionic https://oplab9.parqtec.unicamp.br/pub/ppc64el/openstack/nova/96/731396/1/check/tempest-dsvm-full-bionic/5767e0b/ : FAILURE in 13m 15s\n- tempest-dsvm-full-bionic-py3 https://oplab9.parqtec.unicamp.br/pub/ppc64el/openstack/nova/96/731396/1/check/tempest-dsvm-full-bionic-py3/336dc7b/ : FAILURE in 14m 29s\n- grenade-dsvm-bionic finger://zuul-v3-executor.novalocal/ac38c671bd0b4a27b446a6f8329b2ffd : POST_FAILURE in 3m 47s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"cf3b2d834f3fe294ee36d245eba2e5c6acd727e8","author":{"_account_id":23498,"name":"IBM zVM CI","email":"zvmosci@us.ibm.com","username":"zvmosci"},"date":"2020-05-28 04:20:40.000000000","message":"Patch Set 1:\n\nTesting completed on the zVM Driver CI system check-nova pipeline.  To recheck only the zVM driver plugins, submit a comment with only zvm: recheck in the comment. Contact information: zvmosci@us.ibm.com. For information see https://wiki.openstack.org/wiki/ZVMDriver.\n\n- check-nova-master http://extbasicopstackcilog01.podc.sl.edst.ibm.com/test_logs/jenkins-check-nova-master-43329 : SUCCESS in 56m 18s","accounts_in_message":[],"_revision_number":1},{"id":"52edcebc05abe678fd6660726dbabc14255fbe24","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-05-28 04:54:10.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/1d7772b6b1074c1a8935cb8d6b867f4e : SUCCESS in 5m 25s\n- grenade https://zuul.opendev.org/t/openstack/build/8cf8287f197e4985aec133be20c6bf8e : SUCCESS in 1h 18m 27s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/b99e75e45aa04ca0942a508b31addf31 : SUCCESS in 1h 16m 35s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e5b44a140ff94d40a05a649159950629 : SUCCESS in 21m 38s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/99784b9e16eb44788b5c134237fb0f0c : SUCCESS in 20m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8a119de37dd84d038a75db4bdeafb254 : SUCCESS in 7m 31s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/f1257f987b3b47e6b5de1713fdc87483 : SUCCESS in 17m 21s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/5afbc554ca7b4c59a02e67fe1002192e : SUCCESS in 24m 26s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d0943abccbba41e0954bf79f3daabe04 : SUCCESS in 11m 48s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/6dbf3a7c98744a0bb2a9e0182a5a2cce : SUCCESS in 55m 27s (non-voting)\n- devstack-plugin-ceph-tempest-py3 https://zuul.opendev.org/t/openstack/build/689a7fdd7d91439fae49d86f1161717e : SUCCESS in 1h 11m 11s (non-voting)\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/547fca3d5a23441f8b0dcf737688a6f6 : SUCCESS in 1h 10m 32s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/b1f3a3f9e673471884a9a2109d0d9502 : SUCCESS in 33m 46s\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/0f2a30fe2e5a428ca075871baa5bb65f : SUCCESS in 1h 26m 37s\n- nova-next https://zuul.opendev.org/t/openstack/build/477de54137854f90bba4de2498362374 : SUCCESS in 1h 27m 52s\n- nova-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/86d8a0df103445648ec7d8b0a81260d9 : SUCCESS in 15m 53s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/1396c8f79852492e94c1974cc8faab5d : SUCCESS in 45m 40s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7f8c9e54dd224076ae61238efb0887b2 : SUCCESS in 56m 06s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/dbe85aff6889499e9ad0c50c8ea31fc9 : SUCCESS in 24m 17s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"4fba0d3bcd3e1b03cbadc2b437f9d3932d6cee8f","author":{"_account_id":15941,"name":"DellEMC PowerFlex CI","email":"emc.scaleio.ci@emc.com","username":"emc-scaleio-ci","tags":["SERVICE_USER"]},"date":"2020-05-28 04:54:48.000000000","message":"Patch Set 1:\n\nBuild failed.  For information on how to proceed, see https://docs.openstack.org/infra/manual/developers.html\n\n- EMC_VxFlexOS_NOVA http://publiclogs.emc.com/96/731396/1/check/EMC_VxFlexOS_NOVA/1e85df4/EMC_VxFlexOS_NOVA/None : NOT_REGISTERED\n\nLeave a comment with \u0027run-DellEMC VxFlexOS CI\u0027 to trigger a recheck. For more information about CI, please see https://wiki.openstack.org/wiki/ThirdPartySystems/DellEMC_VxFlexOS_CI","accounts_in_message":[],"_revision_number":1},{"id":"be4ee50ff1f4624943d08546bde41e90ab04b684","author":{"_account_id":26515,"name":"Cloudbase Nova Hyper-V CI","email":"nova_hyperv_ci@cloudbasesolutions.com","username":"nova_hyperv_ci"},"date":"2020-05-28 05:51:39.000000000","message":"Patch Set 1:\n\nFor rechecking only on the Cloudbase Nova Hyper-V CI, add a review comment with run-Cloudbase Nova Hyper-V CI\n\n- nova http://cloudbase-ci.com/nova/731396/1 : FAILURE in 2h 27m 00s","accounts_in_message":[],"_revision_number":1},{"id":"e58622bb0847b0dd97ff56aea00fa57010bbc642","author":{"_account_id":14384,"name":"Quobyte CI","email":"openstack-ci-external@quobyte.com","username":"quobyteci","tags":["SERVICE_USER"]},"date":"2020-05-28 06:08:39.000000000","message":"Patch Set 1:\n\n* nova-quobyteci-dsvm-volume http://78.46.57.153:8081/refs-changes-96-731396-1 : FAILURE \n\nSee https://wiki.openstack.org/wiki/ThirdPartySystems/Quobyte_CI for rechecking and info.","accounts_in_message":[],"_revision_number":1},{"id":"14224639ca238c990b8d2519966c91c81725c69a","tag":"autogenerated:jenkins-gerrit-trigger","author":{"_account_id":9732,"name":"Mellanox CI","email":"mlnx-openstack-ci@dev.mellanox.co.il","username":"mellanox","tags":["SERVICE_USER"]},"date":"2020-05-28 08:09:25.000000000","message":"Patch Set 1:\n\nBuild Successful \n\n* SRIOV-nova-direct http://13.74.249.42/refs/changes/96/731396/1/SRIOV-nova-direct : SUCCESS\n\n* SRIOV-nova-macvtap http://13.74.249.42/refs/changes/96/731396/1/SRIOV-nova-macvtap : SUCCESS","accounts_in_message":[],"_revision_number":1},{"id":"60a531a9b651b53a48080aa0563a063a0ead5c2e","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2020-05-28 14:50:35.000000000","message":"Patch Set 1:\n\nThanks gmann for this PoC, I used this as base for adding similar plugin for neutron (https://review.opendev.org/731554)","accounts_in_message":[],"_revision_number":1},{"id":"9c5e4c53737b056781f49bffb289d0e0a34fcc1f","author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"date":"2020-05-28 18:37:46.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nAre we going to treat this as part of our regular API, with api-ref documentation and everything? If so, the fact that the response on /healthcheck varies depending on the configured backend would be problematic, no? Also, it would have to be versioned.","accounts_in_message":[],"_revision_number":1},{"id":"745d46c6d245a5b6c9e8c618b8ac37b1244bf70c","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-05-28 22:51:16.000000000","message":"Patch Set 1:\n\n(3 comments)\n\nAwesome work gmann, thank you for proving this out. Some preliminary comments and question inline.","accounts_in_message":[],"_revision_number":1},{"id":"7444fddc88f133776c0b73dbf52e7bfd58cc7188","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-05-28 23:39:30.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"e3470e7bef548a883b1bd95f20268e1f1439b31a","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2020-05-29 12:56:32.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"cb4a99b8599ca37f06ca8d78f6784dc557e9fc71","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-05-29 14:34:44.000000000","message":"Patch Set 1: Code-Review-1\n\n(9 comments)\n\nAs I said before, I don\u0027t think it\u0027s reasonable to be spraying MQ connections or messages, or DB connections or queries in response to an unauthenticated health check. I think we can populate stats on authenticated requests that get reported by the healthcheck stuff and still accomplish a lot of that goal. Meaning, instrument nova.context to keep some details which we report there.\n\nHowever, from a higher view, I think this is doing way too much for the intent of the healthchecks, unless I\u0027m massively misunderstanding what the goal of those really are. I believe the point is to have them report \"is this API worker healthy\" and not \"is the whole of this Nova deployment healthy\". IIUC, the desire is to provide something for the load balancer to hit quite frequently that lets it know if the API worker needs to be pulled out of rotation, or in the case of k8s, killed and restarted somewhere else. In that case, something far lighter would be just fine I think. Gating the healthy status on \"have I been able to connect to any MQ in the last ten requests\" (and the same for a database) would be fine. We could also keep stats per DB and per MQ when we go to do it, and report those. Something like \"10/10 times I was asked to connect to cell7 I failed\" would indicate that the cell isn\u0027t reachable or something maybe.","accounts_in_message":[],"_revision_number":1},{"id":"6df6aecdafe160c6b929bce8ec9fe90a95db9859","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-05-29 15:23:10.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"7427540430b3635a3cde8fab3232f0eeb450d497","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-05-29 15:24:51.000000000","message":"Patch Set 1:\n\n\u003e (1 comment)\n \u003e \n \u003e Are we going to treat this as part of our regular API, with api-ref\n \u003e documentation and everything? If so, the fact that the response on\n \u003e /healthcheck varies depending on the configured backend would be\n \u003e problematic, no? Also, it would have to be versioned.\n\nThat is good question, I think making it API versioning (microversion) is diffcult. Amy be date based version like metadata API is one option like Melanie mentioned. this is something we can disucss more.","accounts_in_message":[],"_revision_number":1},{"id":"34b8ca322f5808fb8504468ae9688750e75766af","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-05-29 17:39:30.000000000","message":"Patch Set 1:\n\n(6 comments)","accounts_in_message":[],"_revision_number":1},{"id":"fcf92bc62ad8e7b38a89b5dbcfc2e5dc6b97d670","author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"date":"2020-05-29 17:44:22.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"6a8b214f852b692f88cda25e62a05fd184aa56f6","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-05-29 18:32:53.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"5c8ef9db01188fd34f68e9a600a49fb12bad4cfa","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-05-29 20:38:29.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"3364bd2102a3de28ef0e8bfcc705c1951f9eaa1b","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-05-29 20:43:31.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"916c755276838a0b01fcdfb228c1d4bd26de292e","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-05-29 20:52:10.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"47db6bd1102ca3780bbe17984646613bb8d0f4ad","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-06-01 15:23:10.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"6caa63e5938faadd2a8c99d1f689982fa2d5c8cf","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-06-01 15:31:35.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"a9a71a336176b81797ab48811363eba56d3ce91e","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-06-01 15:49:41.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"8c4d57170c639106211224a7ffe133edbf5d1ab5","author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"date":"2020-06-02 01:50:41.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"b51fbb661afe4d6a9285483cb3c82e53832ef092","author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"date":"2020-06-02 02:33:36.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"1044ac24d4c5e2c6c745d169fe91ee751f482e5b","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-06-02 15:02:24.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"09fcf190c60c8e6d0cefe24255db2842e5af2219","author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"date":"2020-06-02 15:48:06.000000000","message":"Patch Set 1: Code-Review-1\n\nHi,\n\nWith my operator hat on, I very much agree with what Dan wrote. On a typical deployment I make, the nova-api would get 3x /heatlcheck requests per seconds (because I deploy 3 haproxy with a VIP, and each of them checks for the nova-api). In such context, the /healthcheck must reply fast, and be as lightweight as possible.\n\nAlso, let\u0027s say there\u0027s an issue with the db or RabbitMQ. Chances are that all of the 3 nova-api that the haproxies are trying to reach all see the same issue. As a consequence, all of the 3 haproxy wont see any of the nova-api as working, and therefore, will mark all of them as non-healthy. Final result: the 3 haproxies will all have no nova-api to connect to, and will return a 503 error on all queries to nova-api. From the operator stand point, this really isn\u0027t what we want to do...\n\nNow, if nova-api is able to provide URLs of the form /monitoring/db or /monitoring/cell/7, then that\u0027s great, and we\u0027ll use them with zabbix. But not at all for haproxy to take a decision.\n\nFinally, by all means, do *NOT* throw away this very nice code. It *WILL* be useful to operators. Just bind it to a different URL than /healthcheck (as per my suggestion above, for example).","accounts_in_message":[],"_revision_number":1},{"id":"e86fb2eb40731a6c9ca31bba546c734d0e0f06a3","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-06-02 23:40:35.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"d9bdc6bbf659f4212eff4ad9014b04d54832aa20","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-06-04 19:53:47.000000000","message":"Patch Set 1:\n\nNote for gmann after the PTG discussion today:\n\nHere\u0027s the spot in the code that Dan and I were talking about, the target_cell context manager:\n\nhttps://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/context.py#L395\n\nwhere after yielding, we could populate info in our global CELL_LAST_SUCCESS cache (or whatever name) variable with success/fail info. This will organically populate while auth\u0027ed users access the system.\n\nThen, when an unauth\u0027ed request comes to /healthcheck, we just take a look in nova.context.CELL_LAST_SUCCESS and return 200 or 503 depending on what we see in there. That is the basic idea. We can explore format/what to store in CELL_LAST_SUCCESS as implementation details during code review.","accounts_in_message":[],"_revision_number":1},{"id":"655df91ecf3eaa9c7fff50e964655df61f594dd8","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-06-04 20:18:58.000000000","message":"Patch Set 1:\n\n\u003e Note for gmann after the PTG discussion today:\n \u003e \n \u003e Here\u0027s the spot in the code that Dan and I were talking about, the\n \u003e target_cell context manager:\n \u003e \n \u003e https://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/context.py#L395\n \u003e \n \u003e where after yielding, we could populate info in our global\n \u003e CELL_LAST_SUCCESS cache (or whatever name) variable with\n \u003e success/fail info.\n\nAfter I wrote this I realized this doesn\u0027t cover DB accesses that occur via a set_target_cell only (and don\u0027t use the target_cell context manager). And it also doesn\u0027t cover MQ accesses. When we target_cell, we aren\u0027t actually connecting to the DB or MQ yet. We are only just setting up what to use when we do try to connect soon after at the DB layer and the RPC layer.\n\nSo it seems we need a different approach...\n\nJust to throw out some initial thoughts:\n\nThe cached cell DB connections occur here when the using() method is called [1]. So I\u0027m wondering if maybe we could make a decorator that try-except and populates nova.context.CELL_LAST_SUCCESS based on whether using() returns or raises.\n\nThe cell MQ connections we prepare here for each communication [2] but I suspect the connection attempt doesn\u0027t happen until we call() or cast() [3], so that ... is not looking easy for decorating everything. At first glance, it seems like we\u0027d want to wrap the call() and cast() in a new helper method in nova/rpc.py and decorate only those.\n\n[1] https://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/db/sqlalchemy/api.py#L183-L253\n[2] https://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/rpc.py#L437-L446\n[3] https://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/compute/rpcapi.py#L525","accounts_in_message":[],"_revision_number":1},{"id":"2f63df28519725bf333873b3ad41f96880ae736f","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2020-10-02 15:54:32.000000000","message":"Patch Set 1:\n\n(1 comment)\n\n\u003e \u003e Note for gmann after the PTG discussion today:\n \u003e \u003e\n \u003e \u003e Here\u0027s the spot in the code that Dan and I were talking about,\n \u003e the\n \u003e \u003e target_cell context manager:\n \u003e \u003e\n \u003e \u003e https://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/context.py#L395\n \u003e \u003e\n \u003e \u003e where after yielding, we could populate info in our global\n \u003e \u003e CELL_LAST_SUCCESS cache (or whatever name) variable with\n \u003e \u003e success/fail info.\n \u003e \n \u003e After I wrote this I realized this doesn\u0027t cover DB accesses that\n \u003e occur via a set_target_cell only (and don\u0027t use the target_cell\n \u003e context manager). And it also doesn\u0027t cover MQ accesses. When we\n \u003e target_cell, we aren\u0027t actually connecting to the DB or MQ yet. We\n \u003e are only just setting up what to use when we do try to connect soon\n \u003e after at the DB layer and the RPC layer.\n \u003e \n \u003e So it seems we need a different approach...\n \u003e \n \u003e Just to throw out some initial thoughts:\n \u003e \n \u003e The cached cell DB connections occur here when the using() method\n \u003e is called [1]. So I\u0027m wondering if maybe we could make a decorator\n \u003e that try-except and populates nova.context.CELL_LAST_SUCCESS based\n \u003e on whether using() returns or raises.\n \u003e \n \u003e The cell MQ connections we prepare here for each communication [2]\n \u003e but I suspect the connection attempt doesn\u0027t happen until we call()\n \u003e or cast() [3], so that ... is not looking easy for decorating\n \u003e everything. At first glance, it seems like we\u0027d want to wrap the\n \u003e call() and cast() in a new helper method in nova/rpc.py and\n \u003e decorate only those.\n\nI looked into the RPC part of this a bit today. I simply killed the rabbit process to trigger an error for a POST servers/{serverid}/remote-consoles REST request. The message bus connection does happen at the call() method call, but that call does not raise an exception back if the connection fails. Oslo messaging retries the call forever (at least in devstack with default config). Eventually the http client timeouts but the server side doesn\u0027t. I saw the same for cast() method too. \n\nWhen I started the rabbit then the nova RPC call() returned an oslo_messaging.exceptions.MessagingTimeout exception to the nova code. \n\nIs there any oslo messaging configuration that makes this behavior better? If not the our simple logic to check for failed rpc calls will not work as the failed call will only be detected _after_ the message bus recovered. \n\n \u003e \n \u003e [1] https://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/db/sqlalchemy/api.py#L183-L253\n \u003e [2] https://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/rpc.py#L437-L446\n \u003e [3] https://github.com/openstack/nova/blob/8988316b8c132c9662dea6cf0345975e87ce7344/nova/compute/rpcapi.py#L525","accounts_in_message":[],"_revision_number":1},{"id":"28205ae9fbee4b65bc21fb72febeaa36a8b1b673","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-10-05 13:38:28.000000000","message":"Patch Set 1:\n\n\u003e Is there any oslo messaging configuration that makes this behavior\n \u003e better? If not the our simple logic to check for failed rpc calls\n \u003e will not work as the failed call will only be detected _after_ the\n \u003e message bus recovered.\n\nIf we update the status timestamp every time we get a successful response, then we can say \"it\u0027s working if it\u0027s less than a minute old\" and \"we don\u0027t know if it\u0027s working\" otherwise.\n\nSetting a failure flag if we get a MessagingTimeout helps us know if there\u0027s a failing *remote* service, but that\u0027s not really what we should be reporting, IMHO. Meaning, the service health of a single nova-api worker should not be impacted by a remote compute being down.\n\nIt\u0027s been a while since we had this conversation, but I believe my point was that we can say something about health being good if there is recent success, and say \"unknown\" or \"assume it\u0027s bad\" if there isn\u0027t. Unless we can hook into o.msg\u0027s connection loop or have them provide us a connection health status, that\u0027s the least-impactful thing we can do, which I think is important.","accounts_in_message":[],"_revision_number":1},{"id":"78764fc28a11943cf965656a74849e2b2b808ea9","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2020-10-07 09:34:32.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"e0d13f7200c808ec08611e31ab03e6fbc2411f41","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2020-10-07 09:36:46.000000000","message":"Patch Set 2:\n\n\u003e \u003e Is there any oslo messaging configuration that makes this\n \u003e behavior\n \u003e \u003e better? If not the our simple logic to check for failed rpc calls\n \u003e \u003e will not work as the failed call will only be detected _after_\n \u003e the\n \u003e \u003e message bus recovered.\n \u003e \n \u003e If we update the status timestamp every time we get a successful\n \u003e response, then we can say \"it\u0027s working if it\u0027s less than a minute\n \u003e old\" and \"we don\u0027t know if it\u0027s working\" otherwise.\n \u003e \n \u003e Setting a failure flag if we get a MessagingTimeout helps us know\n \u003e if there\u0027s a failing *remote* service, but that\u0027s not really what\n \u003e we should be reporting, IMHO. Meaning, the service health of a\n \u003e single nova-api worker should not be impacted by a remote compute\n \u003e being down.\n \u003e \n \u003e It\u0027s been a while since we had this conversation, but I believe my\n \u003e point was that we can say something about health being good if\n \u003e there is recent success, and say \"unknown\" or \"assume it\u0027s bad\" if\n \u003e there isn\u0027t. Unless we can hook into o.msg\u0027s connection loop or\n \u003e have them provide us a connection health status, that\u0027s the\n \u003e least-impactful thing we can do, which I think is important.\n\nPS2 now tries to implement your suggestion. Unfortunately the middleware cannot returns \"Unknown\" health state. It is binary. So the current patch is not useful for haproxy usage.","accounts_in_message":[],"_revision_number":2},{"id":"820a14cc5b8ba0518bbcbcb04ba6562abdf399d4","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2020-10-07 09:38:58.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"e7a53b62b981918065853dba666aeca54812e236","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2020-10-07 10:03:03.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"55658bbf2cdc80a397c427444b1a78dd5918f302","author":{"_account_id":15751,"name":"Intel PCI CI","email":"pci-ci@intel.com","username":"intelpcici","tags":["SERVICE_USER"]},"date":"2020-10-07 10:06:09.000000000","message":"Patch Set 2:\n\n* pci-test http://52.27.155.124/pci/731396/2 : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"dbdd6eeafb5353122fc442f6c6d9faabc33674ae","author":{"_account_id":29963,"name":"Intel_Zuul","display_name":"Intel Corporation CI","email":"intel-openstack-ci@intel.com","username":"Intel_Zuul"},"date":"2020-10-07 10:29:14.000000000","message":"Patch Set 2:\n\nBuild SUCCESSFUL (check pipeline).\n\n- pmem-tempest-plugin-filtered-multi-node http://52.27.155.124/96/731396/2/check/pmem-tempest-plugin-filtered-multi-node/5077bb8/ : SUCCESS in 46m 58s\n- devstack-nfv-numa http://52.27.155.124/96/731396/2/check/devstack-nfv-numa/704d956/ : SUCCESS in 49m 01s","accounts_in_message":[],"_revision_number":2},{"id":"b6cd58f2725b1bdad6d53daf0bca3cd651a2a4a9","author":{"_account_id":9008,"name":"VMware NSX CI","username":"vmwareminesweeper","tags":["SERVICE_USER"]},"date":"2020-10-07 10:47:22.000000000","message":"Patch Set 2:\n\nBuild succeeded\n\n- dsvm-nova http://207.189.188.190/logs/96/731396/2/check-vote/ext-nova-zuul/602e4da : SUCCESS in 1h 10m 16s","accounts_in_message":[],"_revision_number":2},{"id":"0ccd163204aa4b8ea0d3a53a0563ac9deab76d6e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-10-07 13:16:26.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/2dabe71b1fd8448189a0329c2ce2281c : SUCCESS in 4m 41s\n- grenade https://zuul.opendev.org/t/openstack/build/d792c5b5d3844d959cde18e193e25798 : SUCCESS in 1h 00m 07s\n- tempest-integrated-compute https://zuul.opendev.org/t/openstack/build/848148345e2a4bb788a3eb80cb490539 : SUCCESS in 1h 15m 57s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8dec8a306129469abf52db1222ccba2a : SUCCESS in 17m 54s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/95b08a330c1e4816b9ee326302e71920 : SUCCESS in 14m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/742af27c9ebc430d8883cac843065779 : SUCCESS in 8m 09s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/ca1783b7bd2c4c9aacd67521a5fc5fe4 : SUCCESS in 13m 46s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/5be9f78841614771a3811e2d0c7dff28 : SUCCESS in 13m 19s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8f141fcf8927472eb40322109f21a802 : SUCCESS in 10m 35s\n- ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa https://zuul.opendev.org/t/openstack/build/c9063b57626442eebf740dddc18026e4 : SUCCESS in 1h 13m 58s (non-voting)\n- nova-ceph-multistore https://zuul.opendev.org/t/openstack/build/3f936d9e3d704aa8ab7b35a4cdd2c2a5 : SUCCESS in 58m 47s\n- nova-grenade-multinode https://zuul.opendev.org/t/openstack/build/990af3e7ec24438a802f7783dd7cbab4 : SUCCESS in 1h 13m 18s\n- nova-live-migration https://zuul.opendev.org/t/openstack/build/99de1998e1c74e39a7ffff9089d30cfe : SUCCESS in 49m 50s\n- nova-multinode-live-migration https://zuul.opendev.org/t/openstack/build/7523894c4c374dc3a0fd8dd9e89d1ead : FAILURE in 1h 05m 15s (non-voting)\n- nova-evacuate https://zuul.opendev.org/t/openstack/build/e3673cff061c4406b0e8f584dae8cf20 : SUCCESS in 46m 44s (non-voting)\n- nova-multi-cell https://zuul.opendev.org/t/openstack/build/ef50383715a4461292558c16cdf3af28 : SUCCESS in 1h 32m 21s\n- nova-next https://zuul.opendev.org/t/openstack/build/0bca8a028e1247d18b934fd54a9cb17d : FAILURE in 1h 28m 02s\n- nova-tox-functional-py38 https://zuul.opendev.org/t/openstack/build/9bf850dd944640628e6e79fbd9957b6a : SUCCESS in 16m 49s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/fd84a4b3dade4e47ae4888fa5ea914bd : SUCCESS in 1h 01m 31s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/0d89c7099d7c4d7ba77e20bbf1027648 : SUCCESS in 1h 34m 55s\n- cyborg-tempest https://zuul.opendev.org/t/openstack/build/7608fd4432494e75924a6461249f0b6a : SUCCESS in 33m 44s (non-voting)\n- barbican-tempest-plugin-simple-crypto https://zuul.opendev.org/t/openstack/build/c2fdcc78a97a4fdca56fe95f125f6475 : SUCCESS in 43m 09s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"404e40546bb3beb8ff95bb017165de186a18701d","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-10-07 15:15:16.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"3c5b501a3da45ec884c45bcf4ab57005872a155b","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-10-08 13:45:10.000000000","message":"Patch Set 2:\n\n(1 comment)\n\n\u003e \u003e Is there any oslo messaging configuration that makes this\n \u003e behavior\n \u003e \u003e better? If not the our simple logic to check for failed rpc calls\n \u003e \u003e will not work as the failed call will only be detected _after_\n \u003e the\n \u003e \u003e message bus recovered.\n \u003e \n \u003e If we update the status timestamp every time we get a successful\n \u003e response, then we can say \"it\u0027s working if it\u0027s less than a minute\n \u003e old\" and \"we don\u0027t know if it\u0027s working\" otherwise.\n \u003e \n \u003e Setting a failure flag if we get a MessagingTimeout helps us know\n \u003e if there\u0027s a failing *remote* service, but that\u0027s not really what\n \u003e we should be reporting, IMHO. Meaning, the service health of a\n \u003e single nova-api worker should not be impacted by a remote compute\n \u003e being down.\n \u003e \n \u003e It\u0027s been a while since we had this conversation, but I believe my\n \u003e point was that we can say something about health being good if\n \u003e there is recent success, and say \"unknown\" or \"assume it\u0027s bad\" if\n \u003e there isn\u0027t. Unless we can hook into o.msg\u0027s connection loop or\n \u003e have them provide us a connection health status, that\u0027s the\n \u003e least-impactful thing we can do, which I think is important.\n\nYeah, that is what we agreed to return unknown status if we are not sure about status and do not make specific call DB/MQ call to know the status. When service is up and populates the cache with status then healthchecks will start returning the actual status.","accounts_in_message":[],"_revision_number":2},{"id":"45a5bce4ec3facb7eaa6c9263fdb732a2be0e505","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-10-08 13:46:16.000000000","message":"Patch Set 2:\n\n\u003e \u003e \u003e Is there any oslo messaging configuration that makes this\n \u003e \u003e behavior\n \u003e \u003e \u003e better? If not the our simple logic to check for failed rpc\n \u003e calls\n \u003e \u003e \u003e will not work as the failed call will only be detected _after_\n \u003e \u003e the\n \u003e \u003e \u003e message bus recovered.\n \u003e \u003e\n \u003e \u003e If we update the status timestamp every time we get a successful\n \u003e \u003e response, then we can say \"it\u0027s working if it\u0027s less than a\n \u003e minute\n \u003e \u003e old\" and \"we don\u0027t know if it\u0027s working\" otherwise.\n \u003e \u003e\n \u003e \u003e Setting a failure flag if we get a MessagingTimeout helps us know\n \u003e \u003e if there\u0027s a failing *remote* service, but that\u0027s not really what\n \u003e \u003e we should be reporting, IMHO. Meaning, the service health of a\n \u003e \u003e single nova-api worker should not be impacted by a remote compute\n \u003e \u003e being down.\n \u003e \u003e\n \u003e \u003e It\u0027s been a while since we had this conversation, but I believe\n \u003e my\n \u003e \u003e point was that we can say something about health being good if\n \u003e \u003e there is recent success, and say \"unknown\" or \"assume it\u0027s bad\"\n \u003e if\n \u003e \u003e there isn\u0027t. Unless we can hook into o.msg\u0027s connection loop or\n \u003e \u003e have them provide us a connection health status, that\u0027s the\n \u003e \u003e least-impactful thing we can do, which I think is important.\n \u003e \n \u003e PS2 now tries to implement your suggestion. Unfortunately the\n \u003e middleware cannot returns \"Unknown\" health state. It is binary. So\n \u003e the current patch is not useful for haproxy usage.\n\nYeah, initially I was thinking to add it in reason or detail but I think adding Unknown in middleware is better way. I can add that.","accounts_in_message":[],"_revision_number":2},{"id":"d28df7ee4b048c932a20330d0f9f0e74a0245f48","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2020-10-08 14:38:12.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"73790b5a0a155150796dce967cb4bde4dbbc204f","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-10-08 14:51:48.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"3453e2bb9d4052d6a49cd8f29bc8a3c4300bef16","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-10-09 16:02:36.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"d60006eed915ecbc2637d913c2bc4a6c9f02672d","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2020-10-12 13:20:16.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"ed8398b86f4f39e2aa67e0023a0ad37deaea176a","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-10-12 13:47:33.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"eecfec249302ea02d5ce2fbd8cc3e5fa05cc9e57","author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"date":"2020-10-12 16:44:49.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1da2ba752df431489bfddf519f615c9d6509a440","author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"date":"2020-10-13 15:23:47.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"565a684dc59b7753f36816f1d782691a51c72ebb","author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"date":"2020-10-13 15:35:52.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"6485e9ddceecaa22e454e3122cbafabad486ea54","tag":"autogenerated:gerrit:abandon","author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"date":"2024-08-12 20:29:41.000000000","message":"Abandoned","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"3316b816306122b6e40b08d4e5e60f9e6a8d1a9a","revisions":{"501f3a1dc1d16c10ce8753945649da8ffafd4cff":{"kind":"REWORK","_number":1,"created":"2020-05-28 03:23:44.000000000","uploader":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"ref":"refs/changes/96/731396/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/96/731396/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/96/731396/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/96/731396/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/96/731396/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/96/731396/1"}}},"commit":{"parents":[{"commit":"e84190c6c1a4029eb73200d29676df3a4b72e509","subject":"Merge \"trivial: Remove remaining \u0027_LE\u0027 instances\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/e84190c6c1a4029eb73200d29676df3a4b72e509"}]}],"author":{"name":"Ghanshyam Mann","email":"gmann@ghanshyammann.com","date":"2020-05-28 01:58:41.000000000","tz":-300},"committer":{"name":"Ghanshyam Mann","email":"gmann@ghanshyammann.com","date":"2020-05-28 03:19:25.000000000","tz":-300},"subject":"PoC: nova healthchecks API","message":"PoC: nova healthchecks API\n\nTo know nova is healthy or not, the new API endpoint\n/healthcheck is provided.\n\nhealthchecks is based on configurable plugins which can\nperform various checks.\n\noslo provides two basic plugins which does file back health checks\ninstead of real checks on things are up or not. These can be\nused for HAProxy etc [1]:\n- disable_by_file\n- disable_by_files_ports\n\nNova provides three plugins:\n1. Nova_DB_healthcheck: Checks if API, cell0 and at least one cell DB\n  is up. If so then return Healthy otherwise Unhealthy\n2. Nova_MQ_healthcheck: Checks if at least one cells MQ\n  is up. If so then return Healthy otherwise Unhealthy\n3. Nova_services_healthcheck: Checks if at least one cell has at least\n  one conductor and one compute service running. If so then return\n  Healthy otherwise Unhealthy\n\nResponse will return the dict of API|cell\u0027s DB|MQ|services with their status.\n\nFlow digrame and detailed response example\n- https://etherpad.opendev.org/p/nova-healthchecks\n\nTODO: Auth part for various plugins\nTODO: extend the service checks\n\n[1] https://docs.openstack.org/oslo.middleware/latest/reference/healthcheck_plugins.html#available-plugins\n\nChange-Id: I3fa1667cb2570303d166453a2d10a3c146b6606f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/501f3a1dc1d16c10ce8753945649da8ffafd4cff"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/501f3a1dc1d16c10ce8753945649da8ffafd4cff"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"e84190c6c1a4029eb73200d29676df3a4b72e509","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"3316b816306122b6e40b08d4e5e60f9e6a8d1a9a":{"kind":"REWORK","_number":2,"created":"2020-10-07 09:34:32.000000000","uploader":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"ref":"refs/changes/96/731396/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/nova","ref":"refs/changes/96/731396/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/nova refs/changes/96/731396/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/nova refs/changes/96/731396/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/nova refs/changes/96/731396/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/nova refs/changes/96/731396/2"}}},"commit":{"parents":[{"commit":"1e2764df739999e3b973fe450104b53797ec49b9","subject":"Add a /healthcheck URL","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/1e2764df739999e3b973fe450104b53797ec49b9"}]}],"author":{"name":"Balazs Gibizer","email":"balazs.gibizer@est.tech","date":"2020-10-05 06:58:57.000000000","tz":120},"committer":{"name":"Balazs Gibizer","email":"balazs.gibizer@est.tech","date":"2020-10-07 09:31:55.000000000","tz":120},"subject":"Add nova healthcheck API","message":"Add nova healthcheck API\n\nThis patch adds a lightweight RPC healthcheck to the nova API.\n\nThis healthcheck returns OK if there was a recent successful RPC call or\ncast from the API worker that handling the healthcheck request. In the\nother hand if the API worker did not handle any requests since startup\nor the last successful request is older than [default]/service_down_time\nthen the healthcheck return NOK.\n\nPlease note that the above behavior this healthcheck cannot be used from\nhaproxy as a freshly restarted nova-api service would report it health\nas NOT OK until the first API request is forwarded to it. But haproxy\nwould not forward any request to this nova-api as its health is NOT OK.\nAlso if an API worker would not get API request for a while then its\nhealth would switch to NOT OK and therefore haproxy will never send any\nnew request to this worker.\n\nIn the healthcheck middleware a healthcheck result is a boolean so we\ncannot model that the health of a service is unknown.\n\nCo-Authored-By: Ghanshyam Mann \u003cgmann@ghanshyammann.com\u003e\n\nChange-Id: I3fa1667cb2570303d166453a2d10a3c146b6606f\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3316b816306122b6e40b08d4e5e60f9e6a8d1a9a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/nova/commit/3316b816306122b6e40b08d4e5e60f9e6a8d1a9a"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"1e2764df739999e3b973fe450104b53797ec49b9","is_merged_in_target_branch":false,"change_id":"Ie735336d143ad38dc10bb8200f9d3b713e603503","change_number":724684,"patch_set_number":12,"change_status":"NEW"}],"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
