)]}'
{"doc/source/developer/policies/health_v1.rst":[{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"63d7aded1fb5881688ff7af0415ec136e9c3ebb4","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The policy is capable of handling the following actions:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"- ``CLUSTER_RECOVER``: an action that carries some parameters as its inputs."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"- ``CLUSTER_DEL_NODES``: an action that carries a list value named"},{"line_number":38,"context_line":"  ``candidates`` in its ``inputs`` value."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_957568fb","line":35,"range":{"start_line":35,"start_character":23,"end_line":35,"end_character":76},"updated":"2017-01-23 08:56:12.000000000","message":"Just feel the purpose of this annotation is not clear. Maybe add some explanation or example about what parameters \"CLUSTER_RECOVER\" action will carry as inputs?","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"a7a406016b2bbef4cf2a1dd44e9ba8dff0454062","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The policy is capable of handling the following actions:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"- ``CLUSTER_RECOVER``: an action that carries some parameters as its inputs."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"- ``CLUSTER_DEL_NODES``: an action that carries a list value named"},{"line_number":38,"context_line":"  ``candidates`` in its ``inputs`` value."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_1266bc29","line":35,"range":{"start_line":35,"start_character":23,"end_line":35,"end_character":76},"in_reply_to":"5a3905b3_4fc8bfa8","updated":"2017-01-24 01:43:17.000000000","message":"I see. Thanks for the explanation.","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"6fd673104042778175bf43947d8ef9f268103999","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The policy is capable of handling the following actions:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"- ``CLUSTER_RECOVER``: an action that carries some parameters as its inputs."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"- ``CLUSTER_DEL_NODES``: an action that carries a list value named"},{"line_number":38,"context_line":"  ``candidates`` in its ``inputs`` value."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_4fc8bfa8","line":35,"range":{"start_line":35,"start_character":23,"end_line":35,"end_character":76},"in_reply_to":"5a3905b3_957568fb","updated":"2017-01-23 12:19:15.000000000","message":"We don\u0027t have such a specification yet. It is left for future extensions.","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"63d7aded1fb5881688ff7af0415ec136e9c3ebb4","unresolved":false,"context_lines":[{"line_number":76,"context_line":"of failure detection:"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* ``NODE_STATUS_POLLING``: the *health manager* periodically polls a cluster"},{"line_number":79,"context_line":"  and check if there are nodes."},{"line_number":80,"context_line":"* ``VM_LIFECYCLE_EVENTS``: the *health manager* listens to event notifications"},{"line_number":81,"context_line":"  sent by the backend service (e.g. nova-compute)."},{"line_number":82,"context_line":"* ``LB_STATUS_POLLING``: the *health manager* periodically polls the load"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_b5534438","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":30},"updated":"2017-01-23 08:56:12.000000000","message":"there are node failures happened?","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"6fd673104042778175bf43947d8ef9f268103999","unresolved":false,"context_lines":[{"line_number":76,"context_line":"of failure detection:"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* ``NODE_STATUS_POLLING``: the *health manager* periodically polls a cluster"},{"line_number":79,"context_line":"  and check if there are nodes."},{"line_number":80,"context_line":"* ``VM_LIFECYCLE_EVENTS``: the *health manager* listens to event notifications"},{"line_number":81,"context_line":"  sent by the backend service (e.g. nova-compute)."},{"line_number":82,"context_line":"* ``LB_STATUS_POLLING``: the *health manager* periodically polls the load"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_8fc62798","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":30},"in_reply_to":"5a3905b3_b5534438","updated":"2017-01-23 12:19:15.000000000","message":"will fix.","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"63d7aded1fb5881688ff7af0415ec136e9c3ebb4","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"When such a policy is attached to a cluster, Senlin registers the cluster to"},{"line_number":165,"context_line":"the *health manager* engine for failure detection, i.e., node health checking."},{"line_number":166,"context_line":"A listener thread is created to events that indicate certain node has failed."},{"line_number":167,"context_line":"For nova server nodes, the current implementation treats all of the following"},{"line_number":168,"context_line":"event types as indication of node failures:"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_30b762f6","line":166,"range":{"start_line":166,"start_character":29,"end_line":166,"end_character":38},"updated":"2017-01-23 08:56:12.000000000","message":"to listen to events","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"6fd673104042778175bf43947d8ef9f268103999","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"When such a policy is attached to a cluster, Senlin registers the cluster to"},{"line_number":165,"context_line":"the *health manager* engine for failure detection, i.e., node health checking."},{"line_number":166,"context_line":"A listener thread is created to events that indicate certain node has failed."},{"line_number":167,"context_line":"For nova server nodes, the current implementation treats all of the following"},{"line_number":168,"context_line":"event types as indication of node failures:"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_0f3957a4","line":166,"range":{"start_line":166,"start_character":29,"end_line":166,"end_character":38},"in_reply_to":"5a3905b3_30b762f6","updated":"2017-01-23 12:19:15.000000000","message":"will fix.","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"63d7aded1fb5881688ff7af0415ec136e9c3ebb4","unresolved":false,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"The above specification basically tells Senlin engine to try a list of"},{"line_number":228,"context_line":"recovery actions one by one. The first thing to try is to \"reboot\" (an"},{"line_number":229,"context_line":"operation only applicable on a Nova server) the failed node in question. If"},{"line_number":230,"context_line":"that didn\u0027t solve the problem, the engine is expected to \"rebuild\" (also a"},{"line_number":231,"context_line":"Nova server specific verb) the failed node. If this cannot bring the node back"},{"line_number":232,"context_line":"to healthy status, the engine should execute a Mistral workflow named"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_90c2d632","line":229,"range":{"start_line":229,"start_character":44,"end_line":229,"end_character":71},"updated":"2017-01-23 08:56:12.000000000","message":"just \"the failed node\" is ok?","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"6fd673104042778175bf43947d8ef9f268103999","unresolved":false,"context_lines":[{"line_number":226,"context_line":""},{"line_number":227,"context_line":"The above specification basically tells Senlin engine to try a list of"},{"line_number":228,"context_line":"recovery actions one by one. The first thing to try is to \"reboot\" (an"},{"line_number":229,"context_line":"operation only applicable on a Nova server) the failed node in question. If"},{"line_number":230,"context_line":"that didn\u0027t solve the problem, the engine is expected to \"rebuild\" (also a"},{"line_number":231,"context_line":"Nova server specific verb) the failed node. If this cannot bring the node back"},{"line_number":232,"context_line":"to healthy status, the engine should execute a Mistral workflow named"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_af25a309","line":229,"range":{"start_line":229,"start_character":44,"end_line":229,"end_character":71},"in_reply_to":"5a3905b3_90c2d632","updated":"2017-01-23 12:19:15.000000000","message":"\"in question\" is a phrase, it means \"sth we are talking about\", \"herein\".\n\nRemoving it, then it means \"the failed node\" has been mentioned or defined before ...","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"63d7aded1fb5881688ff7af0415ec136e9c3ebb4","unresolved":false,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"A more practical and more general operation to recover a failed resource is to"},{"line_number":278,"context_line":"delete the old one followed by creating a new one, thus a ``RECREATE``"},{"line_number":279,"context_line":"operation. Note that the ``RECREATE`` action is although generic enough, it"},{"line_number":280,"context_line":"may and may not be what users want. For example, there is not guarantee that a"},{"line_number":281,"context_line":"recreated Nova server will preserve its physical ID or its IP address. The"},{"line_number":282,"context_line":"temporary status of the original server will be lost for sure."},{"line_number":283,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_f0187ad5","line":280,"range":{"start_line":279,"start_character":73,"end_line":280,"end_character":18},"updated":"2017-01-23 08:56:12.000000000","message":"Only \"it may not be\" is ok here?","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"63d7aded1fb5881688ff7af0415ec136e9c3ebb4","unresolved":false,"context_lines":[{"line_number":277,"context_line":"A more practical and more general operation to recover a failed resource is to"},{"line_number":278,"context_line":"delete the old one followed by creating a new one, thus a ``RECREATE``"},{"line_number":279,"context_line":"operation. Note that the ``RECREATE`` action is although generic enough, it"},{"line_number":280,"context_line":"may and may not be what users want. For example, there is not guarantee that a"},{"line_number":281,"context_line":"recreated Nova server will preserve its physical ID or its IP address. The"},{"line_number":282,"context_line":"temporary status of the original server will be lost for sure."},{"line_number":283,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_907576fb","line":280,"range":{"start_line":280,"start_character":58,"end_line":280,"end_character":61},"updated":"2017-01-23 08:56:12.000000000","message":"no guarantee or not guaranteed","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"a7a406016b2bbef4cf2a1dd44e9ba8dff0454062","unresolved":false,"context_lines":[{"line_number":277,"context_line":"A more practical and more general operation to recover a failed resource is to"},{"line_number":278,"context_line":"delete the old one followed by creating a new one, thus a ``RECREATE``"},{"line_number":279,"context_line":"operation. Note that the ``RECREATE`` action is although generic enough, it"},{"line_number":280,"context_line":"may and may not be what users want. For example, there is not guarantee that a"},{"line_number":281,"context_line":"recreated Nova server will preserve its physical ID or its IP address. The"},{"line_number":282,"context_line":"temporary status of the original server will be lost for sure."},{"line_number":283,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_b2008835","line":280,"range":{"start_line":280,"start_character":58,"end_line":280,"end_character":61},"in_reply_to":"5a3905b3_6fb3bbe9","updated":"2017-01-24 01:43:17.000000000","message":"My fault... \"there is not guarantee\" is already a correct expression.","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"a7a406016b2bbef4cf2a1dd44e9ba8dff0454062","unresolved":false,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"A more practical and more general operation to recover a failed resource is to"},{"line_number":278,"context_line":"delete the old one followed by creating a new one, thus a ``RECREATE``"},{"line_number":279,"context_line":"operation. Note that the ``RECREATE`` action is although generic enough, it"},{"line_number":280,"context_line":"may and may not be what users want. For example, there is not guarantee that a"},{"line_number":281,"context_line":"recreated Nova server will preserve its physical ID or its IP address. The"},{"line_number":282,"context_line":"temporary status of the original server will be lost for sure."},{"line_number":283,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_7d2271a4","line":280,"range":{"start_line":279,"start_character":73,"end_line":280,"end_character":18},"in_reply_to":"5a3905b3_8ffaa773","updated":"2017-01-24 01:43:17.000000000","message":"I mean since there is an \"although\" in the last sentence, maybe we can just say \"it may not be what users want\" here.","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"6fd673104042778175bf43947d8ef9f268103999","unresolved":false,"context_lines":[{"line_number":277,"context_line":"A more practical and more general operation to recover a failed resource is to"},{"line_number":278,"context_line":"delete the old one followed by creating a new one, thus a ``RECREATE``"},{"line_number":279,"context_line":"operation. Note that the ``RECREATE`` action is although generic enough, it"},{"line_number":280,"context_line":"may and may not be what users want. For example, there is not guarantee that a"},{"line_number":281,"context_line":"recreated Nova server will preserve its physical ID or its IP address. The"},{"line_number":282,"context_line":"temporary status of the original server will be lost for sure."},{"line_number":283,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_6fb3bbe9","line":280,"range":{"start_line":280,"start_character":58,"end_line":280,"end_character":61},"in_reply_to":"5a3905b3_907576fb","updated":"2017-01-23 12:19:15.000000000","message":"there is no \"guarantee\" here ... don\u0027t understand this comment.","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"6fd673104042778175bf43947d8ef9f268103999","unresolved":false,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"A more practical and more general operation to recover a failed resource is to"},{"line_number":278,"context_line":"delete the old one followed by creating a new one, thus a ``RECREATE``"},{"line_number":279,"context_line":"operation. Note that the ``RECREATE`` action is although generic enough, it"},{"line_number":280,"context_line":"may and may not be what users want. For example, there is not guarantee that a"},{"line_number":281,"context_line":"recreated Nova server will preserve its physical ID or its IP address. The"},{"line_number":282,"context_line":"temporary status of the original server will be lost for sure."},{"line_number":283,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_8ffaa773","line":280,"range":{"start_line":279,"start_character":73,"end_line":280,"end_character":18},"in_reply_to":"5a3905b3_f0187ad5","updated":"2017-01-23 12:19:15.000000000","message":"Sigh ...\n\nTry write \"it may not be\" here, I don\u0027t know how to write it ...","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"63d7aded1fb5881688ff7af0415ec136e9c3ebb4","unresolved":false,"context_lines":[{"line_number":318,"context_line":"all high-availability solutions. Take a Nova server failure as an example,"},{"line_number":319,"context_line":"there are many causes which can lead the server into an inactive status. A"},{"line_number":320,"context_line":"physical host crash, a network connection breakage etc. can all result in a"},{"line_number":321,"context_line":"node unreachable. From Nova controllers perspective, it may appear that the"},{"line_number":322,"context_line":"host has gone offline, however, what really happened could be just the"},{"line_number":323,"context_line":"management network is experiencing some problems. The host is actually still"},{"line_number":324,"context_line":"there, all the VM instances on it are still active, which means they are still"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_70880ac6","line":321,"range":{"start_line":321,"start_character":28,"end_line":321,"end_character":39},"updated":"2017-01-23 08:56:12.000000000","message":"controller\u0027s?","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"},{"author":{"_account_id":8246,"name":"Qiming Teng","email":"tengqm@outlook.com","username":"tengqm"},"change_message_id":"6fd673104042778175bf43947d8ef9f268103999","unresolved":false,"context_lines":[{"line_number":318,"context_line":"all high-availability solutions. Take a Nova server failure as an example,"},{"line_number":319,"context_line":"there are many causes which can lead the server into an inactive status. A"},{"line_number":320,"context_line":"physical host crash, a network connection breakage etc. can all result in a"},{"line_number":321,"context_line":"node unreachable. From Nova controllers perspective, it may appear that the"},{"line_number":322,"context_line":"host has gone offline, however, what really happened could be just the"},{"line_number":323,"context_line":"management network is experiencing some problems. The host is actually still"},{"line_number":324,"context_line":"there, all the VM instances on it are still active, which means they are still"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a3905b3_cff02f94","line":321,"range":{"start_line":321,"start_character":28,"end_line":321,"end_character":39},"in_reply_to":"5a3905b3_70880ac6","updated":"2017-01-23 12:19:15.000000000","message":"will fix.","commit_id":"b549f4fe28ae342b791d1bc2eef2dbe2cddc3702"}]}
