)]}'
{"specs/liberty/cinder-manage-healthchecks-api.rst":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"1df7c6766655cf311e78bace407da631d0794338","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Proper operation depends on up-to-date information about the availability of the"},{"line_number":20,"context_line":"various services running on them. Currently, this is done by each service"},{"line_number":21,"context_line":"updating the corresponding DB record every 10 seconds(by default) updating the"},{"line_number":22,"context_line":"timestamp of last \u0027heartbeat\u0027), and by each \u0027consumer\u0027 retrieving those records"},{"line_number":23,"context_line":"from the DB, and verifying that the last \u0027heartbeat\u0027 was within allowed time window."},{"line_number":24,"context_line":"This mechanism don\u0027t include important part of service communication - RPC. So"},{"line_number":25,"context_line":"services may update DB and their status will \u0027up\u0027, meanwhile RPC is break and"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_ca250f5d","line":22,"updated":"2015-04-28 18:43:44.000000000","message":"), where this parenthesis open?","commit_id":"070942e9c5619c227ebd92daf0bf5f506fda405a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"1df7c6766655cf311e78bace407da631d0794338","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from the DB, and verifying that the last \u0027heartbeat\u0027 was within allowed time window."},{"line_number":24,"context_line":"This mechanism don\u0027t include important part of service communication - RPC. So"},{"line_number":25,"context_line":"services may update DB and their status will \u0027up\u0027, meanwhile RPC is break and"},{"line_number":26,"context_line":"services isn\u0027t able to receive messages."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_4af1ffcc","line":26,"updated":"2015-04-28 18:43:44.000000000","message":"services aren\u0027t","commit_id":"070942e9c5619c227ebd92daf0bf5f506fda405a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"1df7c6766655cf311e78bace407da631d0794338","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"This blueprint proposes add new command to cinder-manage tool \u0027cinder healthcheck\u0027."},{"line_number":52,"context_line":"It will send messages via RPC to all cinder services, and cinder services should"},{"line_number":53,"context_line":"write \u0027update timestamp\u0027 to DB."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_aa8773d6","line":53,"updated":"2015-04-28 18:43:44.000000000","message":"Add another command is not actually needed.  \u0027cinder-manage service list\u0027 does the same, but just don\u0027t check the RPC channel as in your proposal. You can add the same functionality (query service using RPC) to \u0027cinder-manage service list\u0027.","commit_id":"070942e9c5619c227ebd92daf0bf5f506fda405a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"1df7c6766655cf311e78bace407da631d0794338","unresolved":false,"context_lines":[{"line_number":59,"context_line":"- Nova has conductor, which update DB record of service availability by request from"},{"line_number":60,"context_line":"compute nodes via RPC."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Anything else?"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Data model impact"},{"line_number":65,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ad0253b_0a9547e3","line":62,"updated":"2015-04-28 18:43:44.000000000","message":"Is it possible that the routine that updates the DB send any RPC message to check the channel and then update the DB? That would be easier!!","commit_id":"070942e9c5619c227ebd92daf0bf5f506fda405a"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"98c7f45fca60b065b97efbe35962253ee3888b26","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Proposed change is extend command cinder-manage service list. It will send"},{"line_number":52,"context_line":"messages via RPC to all cinder services, and cinder services should write"},{"line_number":53,"context_line":"\u0027update timestamp\u0027 to DB."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_b70c6443","line":54,"updated":"2015-05-14 11:26:12.000000000","message":"How you can tell that the last timestamp was added due the RPC message or the periodic DB update?","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"fdee3ffd8e09c2de35561245900fcb00d883548a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"Proposed change is extend command cinder-manage service list. It will send"},{"line_number":52,"context_line":"messages via RPC to all cinder services, and cinder services should write"},{"line_number":53,"context_line":"\u0027update timestamp\u0027 to DB."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_9a93cfa3","line":54,"in_reply_to":"7a016987_b70c6443","updated":"2015-05-14 11:35:36.000000000","message":"Periodic update \u0027updated_at\u0027 field, not \u0027modified_at\u0027","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"5d9b9a2c1dd8eb893de73856dc5455d09fb70eaf","unresolved":false,"context_lines":[{"line_number":52,"context_line":"messages via RPC to all cinder services, and cinder services should write"},{"line_number":53,"context_line":"\u0027update timestamp\u0027 to DB."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"--------------------"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aca2d91_2c24275e","line":55,"updated":"2015-05-08 19:37:35.000000000","message":"Please add Use Cases section. https://github.com/openstack/cinder-specs/blob/master/specs/template.rst#use-cases","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"aaeab8e61f019a0af2f297bcfa31a070228504dd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"messages via RPC to all cinder services, and cinder services should write"},{"line_number":53,"context_line":"\u0027update timestamp\u0027 to DB."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"--------------------"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a0c5dc1_7a65b8df","line":55,"in_reply_to":"1aca2d91_2c24275e","updated":"2015-05-12 10:05:04.000000000","message":"There is existing one above, after \u0027problem description\u0027 section. Is it section you mean?","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"98c7f45fca60b065b97efbe35962253ee3888b26","unresolved":false,"context_lines":[{"line_number":60,"context_line":"compute nodes via RPC."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Anything else?"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Data model impact"},{"line_number":65,"context_line":"--------------------"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3acd31a7_ce93c0f9","line":63,"updated":"2015-05-14 11:26:12.000000000","message":"Is it possible that the routine that updates the DB send any RPC message to check the channel and then update the DB?","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"fdee3ffd8e09c2de35561245900fcb00d883548a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"compute nodes via RPC."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Anything else?"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Data model impact"},{"line_number":65,"context_line":"--------------------"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_1a635fb3","line":63,"in_reply_to":"3acd31a7_ce93c0f9","updated":"2015-05-14 11:35:36.000000000","message":"not sure you mean, could provide example?","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"40ee04a73d23157fddbccc645a00e354631e0dc1","unresolved":false,"context_lines":[{"line_number":60,"context_line":"compute nodes via RPC."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Anything else?"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Data model impact"},{"line_number":65,"context_line":"--------------------"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_9d6509e3","line":63,"in_reply_to":"7a016987_1a635fb3","updated":"2015-05-14 11:59:59.000000000","message":"The idea would be (it its possible for example if the rabbit or qpid has this feature) to ask the RPC service if the channel is OK, and then update the timestamp.","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"9b14ddeba1a175c2a2f34c77b3eb65bd5a7ab302","unresolved":false,"context_lines":[{"line_number":60,"context_line":"compute nodes via RPC."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"- Anything else?"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Data model impact"},{"line_number":65,"context_line":"--------------------"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_8865c5e2","line":63,"in_reply_to":"7a016987_9d6509e3","updated":"2015-05-14 12:31:13.000000000","message":"I think it isn\u0027t responsibility of message broker to know about service groups, it should only deliver messages(as I know messaging has internal mechanism of heartbeats). I propose  to send request through general queue to be sure service is able to receive messages.","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"59cc1bdfae9a0aa31e5aa1322c23ac30ff386d95","unresolved":false,"context_lines":[{"line_number":88,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Then it is possible to check \u0027modified_at\u0027 field and make decision service is available"},{"line_number":91,"context_line":"or not."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"REST API impact"},{"line_number":94,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_29aa691a","line":91,"updated":"2015-05-14 00:21:07.000000000","message":"We\u0027ll not exactly, all that modification says is when it was last modified, not that it\u0027s still available, knowing if something is actually available is not as easy as checking if something updated a record in the last X seconds/minutes. Anyways... this eventually devolves into having a good service api (which is similar to conversations happening in nova @ https://blueprints.launchpad.net/nova/+spec/servicegroup-api-control-plane)","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"e67848099495d2d8ec81c8c269b05bf993f006a3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Then it is possible to check \u0027modified_at\u0027 field and make decision service is available"},{"line_number":91,"context_line":"or not."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"REST API impact"},{"line_number":94,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a016987_5cfc3a3e","line":91,"in_reply_to":"7a016987_29aa691a","updated":"2015-05-14 09:39:20.000000000","message":"I agree with you, we need better service api, the problem here is changing api is process with a lot of barriers and works(as I can see on nova example), also nova already has service group, and cinder doesn\u0027t, I don\u0027t want to say that cinder doesn\u0027t need it, certainly needed, and we should do it. My change is very simple and doesn\u0027t touch api, in future we\u0027ll be able to replace with new one realization.\n\nAs for \u0027modified_at\u0027 field it will be updated with \u0027cinder-manage service list\u0027 each time, it is the goal of this change.","commit_id":"f956e987a6e27d25abda3720aeb9bdc6b0203fa1"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"5c00d8e12a58141a784fcf5158386aca8dafc97b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"timestamp of last \u0027heartbeat\u0027, and by each \u0027consumer\u0027 retrieving those records"},{"line_number":23,"context_line":"from the DB, and verifying that the last \u0027heartbeat\u0027 was within allowed time window."},{"line_number":24,"context_line":"This mechanism don\u0027t include important part of service communication - RPC. So"},{"line_number":25,"context_line":"services may update DB and their status will \u0027up\u0027, meanwhile RPC is break and"},{"line_number":26,"context_line":"services aren\u0027t able to receive messages."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_51f86e49","line":25,"updated":"2015-05-15 12:49:54.000000000","message":"suggest: \u0027meanwhile RPC is broken and ...\u0027","commit_id":"ed24c253948cf5cd689b647556575ec291465205"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"6a74406877e86a204778ae23c835b5e9cf4d0698","unresolved":false,"context_lines":[{"line_number":22,"context_line":"timestamp of last \u0027heartbeat\u0027, and by each \u0027consumer\u0027 retrieving those records"},{"line_number":23,"context_line":"from the DB, and verifying that the last \u0027heartbeat\u0027 was within allowed time window."},{"line_number":24,"context_line":"This mechanism don\u0027t include important part of service communication - RPC. So"},{"line_number":25,"context_line":"services may update DB and their status will \u0027up\u0027, meanwhile RPC is break and"},{"line_number":26,"context_line":"services aren\u0027t able to receive messages."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_f40f48df","line":25,"in_reply_to":"7a016987_51f86e49","updated":"2015-05-15 13:22:39.000000000","message":"thanks, I\u0027ll update it","commit_id":"ed24c253948cf5cd689b647556575ec291465205"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"5c00d8e12a58141a784fcf5158386aca8dafc97b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"| availability_zone | varchar(255) | YES  |     | NULL    |                |"},{"line_number":86,"context_line":"| disabled_reason   | varchar(255) | YES  |     | NULL    |                |"},{"line_number":87,"context_line":"| modified_at       | datetime     | YES  |     | NULL    |                |"},{"line_number":88,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Then it is possible to check \u0027modified_at\u0027 field and make decision service is available"},{"line_number":91,"context_line":"or not."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_714feabd","line":88,"updated":"2015-05-15 12:49:54.000000000","message":"If I understand this proposal, the healthcheck method will only update the modified_at field, not any other fields.  If that is correct, then I think this field should have a different name - perhaps \u0027last_rpc_check\u0027 - that actually indicates its significance rather than making it sound like the last time the contents of the record were otherwise changed.","commit_id":"ed24c253948cf5cd689b647556575ec291465205"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"d52002eba12c2ea35346b595b013555070121227","unresolved":false,"context_lines":[{"line_number":85,"context_line":"| availability_zone | varchar(255) | YES  |     | NULL    |                |"},{"line_number":86,"context_line":"| disabled_reason   | varchar(255) | YES  |     | NULL    |                |"},{"line_number":87,"context_line":"| modified_at       | datetime     | YES  |     | NULL    |                |"},{"line_number":88,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Then it is possible to check \u0027modified_at\u0027 field and make decision service is available"},{"line_number":91,"context_line":"or not."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_975a564f","line":88,"in_reply_to":"7a016987_179f86b5","updated":"2015-05-15 13:40:07.000000000","message":"I am not myself comfortable with overloading the field that way and am going to leave my -1 to ensure that this issue is considered and thought through.\n\nThat said, I very much appreciate your explaining the motivation for re-using the field and strongly suggest that you explicitly explain this in the spec itself.   For example, the \u0027Alternatives\u0027 section could consider the possibility of introducing a new, appropriately named field, and then argue against doing so for the reasons you cite.","commit_id":"ed24c253948cf5cd689b647556575ec291465205"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"240928583c44f0a2c59f309792640a01069cc6b7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"| availability_zone | varchar(255) | YES  |     | NULL    |                |"},{"line_number":86,"context_line":"| disabled_reason   | varchar(255) | YES  |     | NULL    |                |"},{"line_number":87,"context_line":"| modified_at       | datetime     | YES  |     | NULL    |                |"},{"line_number":88,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Then it is possible to check \u0027modified_at\u0027 field and make decision service is available"},{"line_number":91,"context_line":"or not."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_f4e748e2","line":88,"in_reply_to":"7a016987_714feabd","updated":"2015-05-15 13:07:35.000000000","message":"+1","commit_id":"ed24c253948cf5cd689b647556575ec291465205"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"6a74406877e86a204778ae23c835b5e9cf4d0698","unresolved":false,"context_lines":[{"line_number":85,"context_line":"| availability_zone | varchar(255) | YES  |     | NULL    |                |"},{"line_number":86,"context_line":"| disabled_reason   | varchar(255) | YES  |     | NULL    |                |"},{"line_number":87,"context_line":"| modified_at       | datetime     | YES  |     | NULL    |                |"},{"line_number":88,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Then it is possible to check \u0027modified_at\u0027 field and make decision service is available"},{"line_number":91,"context_line":"or not."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_179f86b5","line":88,"in_reply_to":"7a016987_714feabd","updated":"2015-05-15 13:22:39.000000000","message":"One of the main purpose of my change is min changes in api and model, therefore I didn\u0027t introduce new db field and used existing “modified_at”. This field is also used for manual  service-enable/disable, so renaming it to something like \u0027last_rpc_check\u0027 will be wrong.","commit_id":"ed24c253948cf5cd689b647556575ec291465205"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"0bce621d11f616d3cb79b538092b038a7e7c3c39","unresolved":false,"context_lines":[{"line_number":85,"context_line":"| availability_zone | varchar(255) | YES  |     | NULL    |                |"},{"line_number":86,"context_line":"| disabled_reason   | varchar(255) | YES  |     | NULL    |                |"},{"line_number":87,"context_line":"| modified_at       | datetime     | YES  |     | NULL    |                |"},{"line_number":88,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Then it is possible to check \u0027modified_at\u0027 field and make decision service is available"},{"line_number":91,"context_line":"or not."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a016987_4283fa56","line":88,"in_reply_to":"7a016987_975a564f","updated":"2015-05-15 13:44:14.000000000","message":"Ok thanks, I\u0027ll add this to spec","commit_id":"ed24c253948cf5cd689b647556575ec291465205"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"a1f44aff3949c083b06a56fb35504220679ff201","unresolved":false,"context_lines":[{"line_number":68,"context_line":"to service managers, it will update timestamp in service DB table(\u0027modified_at\u0027 field"},{"line_number":69,"context_line":"is proposed to update, it was introduced to avoid inconsistent state when manual"},{"line_number":70,"context_line":"service-enable/disable; the main purpose to use \u0027modified_at\u0027 is to avoid increasing of"},{"line_number":71,"context_line":"db model complexity , especially used only for admin tool)."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Current service table looks like:"},{"line_number":74,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_e8d49520","line":71,"updated":"2015-06-25 14:19:10.000000000","message":"Thank you for adding some text here as discussed in the last\nreview but, honestly, I don\u0027t think it is sufficient.\n\nIMO you should in the Alternatives section discuss alternative approaches that do not overload \u0027modified_at\u0027 and argue against them.  I can figure out what you think on that issue\nonly because you added a clause here and we had a previous\ndiscussion in the review of the previous change set.  I don\u0027t\nthink someone coming to this version alone, if it were the\nfinal version, would see enough to understand the issue\nand your reasoning.","commit_id":"fed88ecb01a92064f567c45d3f1ab9f07522150d"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"d301482e8df2203929f548bc43abf970922d0325","unresolved":false,"context_lines":[{"line_number":68,"context_line":"to service managers, it will update timestamp in service DB table(\u0027modified_at\u0027 field"},{"line_number":69,"context_line":"is proposed to update, it was introduced to avoid inconsistent state when manual"},{"line_number":70,"context_line":"service-enable/disable; the main purpose to use \u0027modified_at\u0027 is to avoid increasing of"},{"line_number":71,"context_line":"db model complexity , especially used only for admin tool)."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Current service table looks like:"},{"line_number":74,"context_line":"+-------------------+--------------+------+-----+---------+----------------+"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa32b979_ce20b99c","line":71,"in_reply_to":"fa32b979_e8d49520","updated":"2015-06-25 14:53:28.000000000","message":"Not sure I understand what you propose to add. As I understand, \u0027Alternatives\u0027 section is to propose another approach to solve described issue. \n\nI add my comments why I prefer to use \u0027modified_at\u0027 field instead introducing new one; it it just implementation decision, not new approach, so I don\u0027t see any new args which should be added,  if you disagree with using existing db field, we can talk about new on, but it will be the same approach with diff impl. So could you specify what you like to see here, please?","commit_id":"fed88ecb01a92064f567c45d3f1ab9f07522150d"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"81b3ac0c1b27f27b6a082fbdf36b01d4657cdd27","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"It would be useful for admin to have ability to make request for all services."},{"line_number":32,"context_line":"And get actual status of cinder services."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cli looks like this:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_593e47b9","line":31,"updated":"2015-07-13 23:57:52.000000000","message":"Why would this be useful compared to just using the storage backend\u0027s dashboard or whatever interface they provide to find out this information?","commit_id":"b60b88f23ed08cc8205d4331eccde0018e5c6c27"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"670dc1bc65961c9e2d1dfdeb828fdd8d30840381","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"It would be useful for admin to have ability to make request for all services."},{"line_number":32,"context_line":"And get actual status of cinder services."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cli looks like this:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_d2889cc7","line":31,"in_reply_to":"9a41bdd9_593e47b9","updated":"2015-07-15 11:12:38.000000000","message":"Not sure how storage backend\u0027s dashboard helps with status of cinder services communication, could you provide example, please?","commit_id":"b60b88f23ed08cc8205d4331eccde0018e5c6c27"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"70c1cdcb641626cf1375c311d2ac0b98350adc1e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"It would be useful for admin to have ability to make request for all services."},{"line_number":32,"context_line":"And get actual status of cinder services."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cli looks like this:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_4074279b","line":31,"in_reply_to":"9a41bdd9_d2889cc7","updated":"2015-07-17 17:30:07.000000000","message":"Heartbeat for cinder-vol service is figured by if it can communicate with the backend solution as it\u0027s gathering stats for the scheduler. If that stops or is never properly initialized, then the service isn\u0027t running properly. If that\u0027s failing, you should looking into your vendor dashboard or tools to understand what\u0027s wrong. Not really Cinder\u0027s problem if the backend solution is failing, that would be a problem of the backend solution. Use their tools to figure out what\u0027s wrong.","commit_id":"b60b88f23ed08cc8205d4331eccde0018e5c6c27"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"eca86f3698de2a80b1b894fc1690283a25e1d33d","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cli looks like this:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"$ cinder-manage service list [-w]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"optional arguments:"},{"line_number":39,"context_line":"  -w,  duration between request to services and their status check(in sec)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_9ee331a4","line":36,"updated":"2015-07-15 09:47:21.000000000","message":"Why cinder-manage rather than a rest API? If you really want to be able to use cinder-manage, I\u0027d suggest both need to be implemented","commit_id":"b60b88f23ed08cc8205d4331eccde0018e5c6c27"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"670dc1bc65961c9e2d1dfdeb828fdd8d30840381","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"cli looks like this:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"$ cinder-manage service list [-w]"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"optional arguments:"},{"line_number":39,"context_line":"  -w,  duration between request to services and their status check(in sec)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a41bdd9_f257e057","line":36,"in_reply_to":"9a41bdd9_9ee331a4","updated":"2015-07-15 11:12:38.000000000","message":"I am considering this more like tool for help in troubleshooting, so one of my purpose was not extend api.","commit_id":"b60b88f23ed08cc8205d4331eccde0018e5c6c27"}]}
