)]}'
{"ocf/neutron-ha-tool":[{"author":{"_account_id":17243,"name":"Norbert Illes","email":"norbert.e.illes@ericsson.com","username":"nilles"},"change_message_id":"348b4f3405dfab575958f0f70654d38f9af6cc0e","unresolved":false,"context_lines":[{"line_number":230,"context_line":"}"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"neutron_ha_tool_start() {"},{"line_number":233,"context_line":"    touch \"$statefile\""},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    INSECURE\u003d\"\""},{"line_number":236,"context_line":"    if ocf_is_true $OCF_RESKEY_os_insecure; then"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3afc51ec_3b9df059","line":233,"range":{"start_line":233,"start_character":4,"end_line":233,"end_character":22},"updated":"2016-03-14 08:52:23.000000000","message":"This assumes that $statefile can be created.\nI think it should raise an error if this command is unsuccessful, for example:\n\n touch \"$statefile\"\n rc\u003d$?\n if [ $rc -ne 0 ]; then\n     ocf_log err \"Neutron HA Tool (neutron-ha-tool) failed to create statefile: $statefile\"\n     return $OCF_ERR_GENERIC\n fi","commit_id":"bea989c5b076b1ead177ab81d21ef8ebb1392803"},{"author":{"_account_id":17243,"name":"Norbert Illes","email":"norbert.e.illes@ericsson.com","username":"nilles"},"change_message_id":"348b4f3405dfab575958f0f70654d38f9af6cc0e","unresolved":false,"context_lines":[{"line_number":260,"context_line":"}"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"neutron_ha_tool_stop() {"},{"line_number":263,"context_line":"    rm -f \"$statefile\""},{"line_number":264,"context_line":"    return $OCF_SUCCESS"},{"line_number":265,"context_line":"}"},{"line_number":266,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"3afc51ec_3e45de16","line":263,"range":{"start_line":263,"start_character":4,"end_line":263,"end_character":22},"updated":"2016-03-14 08:52:23.000000000","message":"Same here, it should raise and error if $statefile can\u0027t be removed for some reason.","commit_id":"bea989c5b076b1ead177ab81d21ef8ebb1392803"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"68a7f37b16ad4690f3c3f083428f2419ce2df7fa","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    if [ -e \"$statefile\" ]; then"},{"line_number":269,"context_line":"        ocf_log err \"Uh-oh - failed to remove $statefile!\""},{"line_number":270,"context_line":"        ocf_log err \"Skipping fencing, but please report this bug to the developers.\""},{"line_number":271,"context_line":"        # Fencing is really disruptive, so it\u0027s not worth triggering"},{"line_number":272,"context_line":"        # it just for the benefit of removing a potentially duplicate"},{"line_number":273,"context_line":"        # state file which wouldn\u0027t do much harm anyway.  At worst it"},{"line_number":274,"context_line":"        # could trigger the action determined by the cluster-wide"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3afc51ec_e07108aa","line":271,"updated":"2016-03-14 12:48:19.000000000","message":"Vincent, Ralf - do you agree with this, or should we return $OCF_ERR_GENERIC in order to trigger fencing, which should in turn guarantee removal of the state file since it should be under /run which IIUC gets cleaned on boot?","commit_id":"d7f7083fa5aeadca0ef25e5effda9f8807c757df"},{"author":{"_account_id":4460,"name":"Vincent Untz","email":"vuntz@opensuse.org","username":"vuntz"},"change_message_id":"548a1bad16cac7333383eb4aa1165728559e916b","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    if [ -e \"$statefile\" ]; then"},{"line_number":269,"context_line":"        ocf_log err \"Uh-oh - failed to remove $statefile!\""},{"line_number":270,"context_line":"        ocf_log err \"Skipping fencing, but please report this bug to the developers.\""},{"line_number":271,"context_line":"        # Fencing is really disruptive, so it\u0027s not worth triggering"},{"line_number":272,"context_line":"        # it just for the benefit of removing a potentially duplicate"},{"line_number":273,"context_line":"        # state file which wouldn\u0027t do much harm anyway.  At worst it"},{"line_number":274,"context_line":"        # could trigger the action determined by the cluster-wide"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3afc51ec_f6a87d79","line":271,"in_reply_to":"3afc51ec_e07108aa","updated":"2016-03-15 10:03:58.000000000","message":"I would actually trigger fencing because if you can\u0027t remove the file, then something is probably wrong on the filesystem anyway.","commit_id":"d7f7083fa5aeadca0ef25e5effda9f8807c757df"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"b686f0ce6672c8b53090d0036e3115126ce24ef4","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    if [ -e \"$statefile\" ]; then"},{"line_number":269,"context_line":"        ocf_log err \"Uh-oh - failed to remove $statefile!\""},{"line_number":270,"context_line":"        ocf_log err \"Skipping fencing, but please report this bug to the developers.\""},{"line_number":271,"context_line":"        # Fencing is really disruptive, so it\u0027s not worth triggering"},{"line_number":272,"context_line":"        # it just for the benefit of removing a potentially duplicate"},{"line_number":273,"context_line":"        # state file which wouldn\u0027t do much harm anyway.  At worst it"},{"line_number":274,"context_line":"        # could trigger the action determined by the cluster-wide"}],"source_content_type":"application/x-shellscript","patch_set":3,"id":"3afc51ec_f61b5dc8","line":271,"in_reply_to":"3afc51ec_f6a87d79","updated":"2016-03-15 10:08:39.000000000","message":"Done","commit_id":"d7f7083fa5aeadca0ef25e5effda9f8807c757df"},{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"cef79bb584d6777b3e473485fb4b83eebd317aa1","unresolved":false,"context_lines":[{"line_number":188,"context_line":"neutron_ha_tool_status() {"},{"line_number":189,"context_line":"    # There is not much to do here, since there is no daemon to check for."},{"line_number":190,"context_line":"    # Just pretend we\u0027re running successfully"},{"line_number":191,"context_line":"    return $OCF_SUCCESS"},{"line_number":192,"context_line":"}"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"neutron_ha_tool_monitor() {"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"1af94dfe_1edae978","line":191,"updated":"2016-03-15 11:39:37.000000000","message":"Wouldn\u0027t this also need to be adapted for the new state file?\n\nI am somewhat unsure here what the \"status\" call is actually supposed to do as the RA Developers Guide doesn\u0027t even mention a \"status\" action. (Though most other agents here also implement it)","commit_id":"34447f8fa84b8e28d969cfea2638d6d888a328e8"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"8f8c30a8e4e78e70bed79a781237b2e1c1d444a2","unresolved":false,"context_lines":[{"line_number":188,"context_line":"neutron_ha_tool_status() {"},{"line_number":189,"context_line":"    # There is not much to do here, since there is no daemon to check for."},{"line_number":190,"context_line":"    # Just pretend we\u0027re running successfully"},{"line_number":191,"context_line":"    return $OCF_SUCCESS"},{"line_number":192,"context_line":"}"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"neutron_ha_tool_monitor() {"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"1af94dfe_ba781891","line":191,"in_reply_to":"1af94dfe_1edae978","updated":"2016-03-15 14:07:19.000000000","message":"@Ralf, thanks for spotting this!  I investigated and it turns out it will never be used; see:\n\nhttp://bugs.clusterlabs.org/show_bug.cgi?id\u003d5271\nand\nhttps://bugs.launchpad.net/openstack-resource-agents/+bug/1557545","commit_id":"34447f8fa84b8e28d969cfea2638d6d888a328e8"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"0879de36c77dbc74a5449b96f2a69966c628f062","unresolved":false,"context_lines":[{"line_number":188,"context_line":"neutron_ha_tool_status() {"},{"line_number":189,"context_line":"    # There is not much to do here, since there is no daemon to check for."},{"line_number":190,"context_line":"    # Just pretend we\u0027re running successfully"},{"line_number":191,"context_line":"    return $OCF_SUCCESS"},{"line_number":192,"context_line":"}"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"neutron_ha_tool_monitor() {"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"1af94dfe_5aaf54e3","line":191,"in_reply_to":"1af94dfe_1edae978","updated":"2016-03-15 14:07:39.000000000","message":"Done","commit_id":"34447f8fa84b8e28d969cfea2638d6d888a328e8"},{"author":{"_account_id":2062,"name":"Ralf Haferkamp","email":"rhafer@suse.com","username":"rhafer"},"change_message_id":"f6c80a8c25abadd79a2e4bf0c6e4be777efe7409","unresolved":false,"context_lines":[{"line_number":188,"context_line":"neutron_ha_tool_status() {"},{"line_number":189,"context_line":"    # There is not much to do here, since there is no daemon to check for."},{"line_number":190,"context_line":"    # Just pretend we\u0027re running successfully"},{"line_number":191,"context_line":"    return $OCF_SUCCESS"},{"line_number":192,"context_line":"}"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"neutron_ha_tool_monitor() {"}],"source_content_type":"application/x-shellscript","patch_set":4,"id":"1af94dfe_d0ad008a","line":191,"in_reply_to":"1af94dfe_ba781891","updated":"2016-03-15 15:47:05.000000000","message":"Thanks for clarifying","commit_id":"34447f8fa84b8e28d969cfea2638d6d888a328e8"}]}
