)]}'
{"specs/juno/health_check_api.rst":[{"author":{"_account_id":9013,"name":"Robert Parker","email":"rob.s.parker@gmail.com","username":"robsparker"},"change_message_id":"5fc325800159bc4f9da03b18fabd5fdc77c7484a","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The issue the blueprint is addressing is that without a mechanism for the LB to"},{"line_number":27,"context_line":"verify that the service is still reachable and functional it is impossible to"},{"line_number":28,"context_line":"scale it to HA levels."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ae8d1ca_835b6753","line":28,"updated":"2014-05-28 13:30:09.000000000","message":"I prefer active voice with something like this:\n\nThis blue print addresses the requirement of the LB to have a mechanism to verify the service is reachable and functional in order to scale any HA model.","commit_id":"8ad0ae6aa7e2553eb57049d535b1f8bd14839984"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"47e3a7db00ce5fd30ee87351da9e2c453ae1c7e0","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The issue the blueprint is addressing is that without a mechanism for the LB to"},{"line_number":27,"context_line":"verify that the service is still reachable and functional it is impossible to"},{"line_number":28,"context_line":"scale it to HA levels."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ae8d1ca_ae83e302","line":28,"in_reply_to":"3ae8d1ca_835b6753","updated":"2014-05-28 16:27:36.000000000","message":"Done","commit_id":"8ad0ae6aa7e2553eb57049d535b1f8bd14839984"},{"author":{"_account_id":9013,"name":"Robert Parker","email":"rob.s.parker@gmail.com","username":"robsparker"},"change_message_id":"5fc325800159bc4f9da03b18fabd5fdc77c7484a","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* `HEAD /v2/health`::"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"     -\u003e "},{"line_number":77,"context_line":"     \u003c- 204 No Content"},{"line_number":78,"context_line":"        "},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ae8d1ca_5e13f45b","line":76,"updated":"2014-05-28 13:30:09.000000000","message":"Probably want to remove the tabs","commit_id":"8ad0ae6aa7e2553eb57049d535b1f8bd14839984"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"47e3a7db00ce5fd30ee87351da9e2c453ae1c7e0","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* `HEAD /v2/health`::"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"     -\u003e "},{"line_number":77,"context_line":"     \u003c- 204 No Content"},{"line_number":78,"context_line":"        "},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ae8d1ca_8ebaa7be","line":76,"in_reply_to":"3ae8d1ca_5e13f45b","updated":"2014-05-28 16:27:36.000000000","message":"Done","commit_id":"8ad0ae6aa7e2553eb57049d535b1f8bd14839984"},{"author":{"_account_id":9013,"name":"Robert Parker","email":"rob.s.parker@gmail.com","username":"robsparker"},"change_message_id":"5fc325800159bc4f9da03b18fabd5fdc77c7484a","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"No other impact beside the API changes."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Performance/Scalability Impacts"},{"line_number":108,"context_line":"-------------------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Describe any potential performance or scaling impact on the system, considering"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ae8d1ca_5eddb46f","line":107,"updated":"2014-05-28 13:30:09.000000000","message":"Do we need to leave this boilerplate stuff in? vvvv","commit_id":"8ad0ae6aa7e2553eb57049d535b1f8bd14839984"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"47e3a7db00ce5fd30ee87351da9e2c453ae1c7e0","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"No other impact beside the API changes."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Performance/Scalability Impacts"},{"line_number":108,"context_line":"-------------------------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Describe any potential performance or scaling impact on the system, considering"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3ae8d1ca_4ed7bfed","line":107,"in_reply_to":"3ae8d1ca_5eddb46f","updated":"2014-05-28 16:27:36.000000000","message":"Yes it is mandatory! There is a test that run in Zuul to make sure that you have all the titles otherwise Jenkins will give you a -1 :-)","commit_id":"8ad0ae6aa7e2553eb57049d535b1f8bd14839984"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"48527644b8e586f15db3230c47379329eb6325f3","unresolved":false,"context_lines":[{"line_number":76,"context_line":"     \u003c- 204 No Content"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"     In case the service cannot be reach a 5xx will be returned."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* `GET /v2/health`::"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_65c947ab","line":79,"updated":"2014-06-06 10:32:25.000000000","message":"What is \"the service\" in this context? If it is an instance of the api server, if it itself can\u0027t be reached, then how can it return a response code? Won\u0027t instead the request timeout (perhaps allowing some intermediary to return a 502 or 504)? I would think that the options for the expected responses from the API itself (for GET or HEAD) are one of:\n\n* nothing (timeout because the server is dead)\n* 503 (because the back-end cannot be reached)\n* 204 or 200 (because things are OK)","commit_id":"16e4dfdfe0b8db4c37ea4c3c8d3cffd0439a815e"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"694bd3061595fb2cae36a9284e02d8c34bcf8638","unresolved":false,"context_lines":[{"line_number":76,"context_line":"     \u003c- 204 No Content"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"     In case the service cannot be reach a 5xx will be returned."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* `GET /v2/health`::"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_bff8744a","line":79,"in_reply_to":"1ae5cdf2_65c947ab","updated":"2014-06-09 19:02:49.000000000","message":"Chris,\n  you are right, if everything is down it will just timeout.\nI will update the docs. Thanks.","commit_id":"16e4dfdfe0b8db4c37ea4c3c8d3cffd0439a815e"},{"author":{"_account_id":9013,"name":"Robert Parker","email":"rob.s.parker@gmail.com","username":"robsparker"},"change_message_id":"61f8027016df4b2ecb913f67be3b10f5f67cf674","unresolved":false,"context_lines":[{"line_number":78,"context_line":"     Responses:"},{"line_number":79,"context_line":"     * Nothing/Time Out. The instance is not running because it is dead or"},{"line_number":80,"context_line":"       unreacheable."},{"line_number":81,"context_line":"     * 204 if the instance is healty."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* `GET /v2/health`::"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_b3e6d114","line":81,"updated":"2014-06-10 12:25:57.000000000","message":"typo healthy","commit_id":"5dd77bfe107b9cdb6acd11c9e431ff325bc4ed0e"},{"author":{"_account_id":9013,"name":"Robert Parker","email":"rob.s.parker@gmail.com","username":"robsparker"},"change_message_id":"61f8027016df4b2ecb913f67be3b10f5f67cf674","unresolved":false,"context_lines":[{"line_number":90,"context_line":"       unreacheable."},{"line_number":91,"context_line":"     * 503. The instance is running but the backend connectivity is lost or"},{"line_number":92,"context_line":"       compromised."},{"line_number":93,"context_line":"     * 200 if the instance and backend are healty."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_93e0f5fb","line":93,"updated":"2014-06-10 12:25:57.000000000","message":"same typo :)","commit_id":"5dd77bfe107b9cdb6acd11c9e431ff325bc4ed0e"},{"author":{"_account_id":11549,"name":"Atul Aggarwal","email":"atula@hp.com","username":"aaggarw3"},"change_message_id":"5bfb05561a4432e40a7b1697907f3159dac014b0","unresolved":false,"context_lines":[{"line_number":24,"context_line":"outside the scope of this blueprint."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This blueprint addresses the requirement of the LB to have a mechanism to"},{"line_number":27,"context_line":"verify the service is reachable and functional in order to scale any HA model."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1ae5cdf2_a2f6bc5b","line":27,"updated":"2014-06-23 21:10:05.000000000","message":"I find the problem description confusing a little bit. \non 23-24 it says strategies or LB is out scope (and I thought of it as LB instead of strategies).\nand on line 26 it says this blue print address the stuff it claimed to be out of scope","commit_id":"7521dc331a59b4abf15b2a3a6115a1ff6a614cbd"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"0c11a616a548beabab2217e9dad095add8862319","unresolved":false,"context_lines":[{"line_number":40,"context_line":"The deep check requires the extra step of performing a full round-trip to the"},{"line_number":41,"context_line":"database and retrieve (or validate consistency) of some of the tables and"},{"line_number":42,"context_line":"data. This second method is used to verify that the service not only is alive"},{"line_number":43,"context_line":"but it can perform all the expected operations."},{"line_number":44,"context_line":"This latter function can be used in conjunction with data coming from"},{"line_number":45,"context_line":"monitoring. When some database instances are reporting problems the LB can"},{"line_number":46,"context_line":"perform deep check to verify that this particular service is not affected."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_bb288886","line":43,"updated":"2014-07-17 06:49:40.000000000","message":"Can you describe specifically what kind of operations will be triggered for different \u0027back-ends\u0027 respectively for this deep check?","commit_id":"c60f3f4609390fd6971b9caa6ff83f3f90fad7bb"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"7aa4c5cad5ebe06c42c1f620646721320a8ae749","unresolved":false,"context_lines":[{"line_number":40,"context_line":"The deep check requires the extra step of performing a full round-trip to the"},{"line_number":41,"context_line":"database and retrieve (or validate consistency) of some of the tables and"},{"line_number":42,"context_line":"data. This second method is used to verify that the service not only is alive"},{"line_number":43,"context_line":"but it can perform all the expected operations."},{"line_number":44,"context_line":"This latter function can be used in conjunction with data coming from"},{"line_number":45,"context_line":"monitoring. When some database instances are reporting problems the LB can"},{"line_number":46,"context_line":"perform deep check to verify that this particular service is not affected."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7ac7a964_800c7796","line":43,"in_reply_to":"7ac7a964_405edfea","updated":"2014-08-14 02:07:49.000000000","message":"ok, could  you please put this \u0027capability\u0027 consideration into the spec?\n\nAlso please mention that you plan to add a new interface into the storage driver: db_health_check.\n\nthanks","commit_id":"c60f3f4609390fd6971b9caa6ff83f3f90fad7bb"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"b2fc2013c8c876762211c680c21f59e871420cc8","unresolved":false,"context_lines":[{"line_number":40,"context_line":"The deep check requires the extra step of performing a full round-trip to the"},{"line_number":41,"context_line":"database and retrieve (or validate consistency) of some of the tables and"},{"line_number":42,"context_line":"data. This second method is used to verify that the service not only is alive"},{"line_number":43,"context_line":"but it can perform all the expected operations."},{"line_number":44,"context_line":"This latter function can be used in conjunction with data coming from"},{"line_number":45,"context_line":"monitoring. When some database instances are reporting problems the LB can"},{"line_number":46,"context_line":"perform deep check to verify that this particular service is not affected."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7ac7a964_405edfea","line":43,"in_reply_to":"7ac7a964_7db468f2","updated":"2014-08-14 01:48:40.000000000","message":"The REST API is described in the \u0027REST API Impact\u0027 session.\nBasically there is one method called /v2/health and you can do a HEAD for shallow check and a GET for deep check.\nThe deep check needs to establish that the db is alive and data can extracted from it, so there will be db_health_check method in the storage driver than that is implemented differently (or not implemented) for each db. The capability can expose if the deep check is available or not, if not it will be the same as the shallow check, meaning the db_health_check will just return pass.","commit_id":"c60f3f4609390fd6971b9caa6ff83f3f90fad7bb"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"9244a03909f9684985841ced697cef84b7b17c25","unresolved":false,"context_lines":[{"line_number":40,"context_line":"The deep check requires the extra step of performing a full round-trip to the"},{"line_number":41,"context_line":"database and retrieve (or validate consistency) of some of the tables and"},{"line_number":42,"context_line":"data. This second method is used to verify that the service not only is alive"},{"line_number":43,"context_line":"but it can perform all the expected operations."},{"line_number":44,"context_line":"This latter function can be used in conjunction with data coming from"},{"line_number":45,"context_line":"monitoring. When some database instances are reporting problems the LB can"},{"line_number":46,"context_line":"perform deep check to verify that this particular service is not affected."}],"source_content_type":"text/x-rst","patch_set":6,"id":"7ac7a964_7db468f2","line":43,"in_reply_to":"baada198_8d73c7b2","updated":"2014-08-14 01:15:56.000000000","message":"I just want the \u0027deep check\u0027 part to be described in more details. What will the actual REST API request and response for the deep check look like?\n\nBesides, currently different DB backend has different feature support which the user can get from the \u0027capability\u0027 REST API, how do yo address that kind difference in your health api?","commit_id":"c60f3f4609390fd6971b9caa6ff83f3f90fad7bb"},{"author":{"_account_id":7052,"name":"Fabio Giannetti","email":"fgiannet@cisco.com","username":"fabgia"},"change_message_id":"8f233f8b842327fc27c3d13e78c835062f9e1f67","unresolved":false,"context_lines":[{"line_number":40,"context_line":"The deep check requires the extra step of performing a full round-trip to the"},{"line_number":41,"context_line":"database and retrieve (or validate consistency) of some of the tables and"},{"line_number":42,"context_line":"data. This second method is used to verify that the service not only is alive"},{"line_number":43,"context_line":"but it can perform all the expected operations."},{"line_number":44,"context_line":"This latter function can be used in conjunction with data coming from"},{"line_number":45,"context_line":"monitoring. When some database instances are reporting problems the LB can"},{"line_number":46,"context_line":"perform deep check to verify that this particular service is not affected."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_8d73c7b2","line":43,"in_reply_to":"baada198_bb288886","updated":"2014-08-12 23:23:44.000000000","message":"This means that you could run some queries and verify you receive data and that data has passed some validation before returning the 200 OK.\nIf the checks are failing you could return error and an explanation of the lack of connectivity/integrity the current instance is experiencing.","commit_id":"c60f3f4609390fd6971b9caa6ff83f3f90fad7bb"}]}
