code: func (c *cluster) unprotectedPreviousNode() *Node {
  	if len(c.nodes) <= 1 {
  		return nil
  	}
  
  	pos := c.nodePositionByID(c.Node.ID)
  	if pos == -1 {
  		return nil
  	} else if pos == 0 {
  		return c.nodes[len(c.nodes)-1]
  	} else {
  		return c.nodes[pos-1]
  	}
  }
docs: // unprotectedPreviousNode returns the node listed before the current node in c.Nodes.
  // If there is only one node in the cluster, returns nil.
  // If the current node is the first node in the list, returns the last node.