// Write the result of an action into topology server func StoreActionResponse(ts topo.Server, actionNode *actionnode.ActionNode, actionPath string, actionErr error) error { // change our state if actionErr != nil { // on failure, set an error field on the node actionNode.Error = actionErr.Error() actionNode.State = actionnode.ACTION_STATE_FAILED } else { actionNode.Error = "" actionNode.State = actionnode.ACTION_STATE_DONE } actionNode.Pid = 0 // Write the data first to our action node, then to the log. // In the error case, this node will be left behind to debug. data := actionNode.ToJson() return ts.StoreTabletActionResponse(actionPath, data) }