lxd/db/db.go
func (n *Node) Transaction(f func(*NodeTx) error) error {
	nodeTx := &NodeTx{}
	return query.Transaction(n.db, func(tx *sql.Tx) error {
		nodeTx.tx = tx
		return f(nodeTx)
	})
}
func (n *Node) Transaction(f func(*NodeTx) error) error {
	nodeTx := &NodeTx{}
	return query.Transaction(n.db, func(tx *sql.Tx) error {
		nodeTx.tx = tx
		return f(nodeTx)
	})
}
func ( n * Node ) Transaction ( f func ( * NodeTx ) error ) error { nodeTx := & NodeTx { } return query . Transaction ( n . db , func ( tx * sql . Tx ) error { nodeTx . tx = tx return f ( nodeTx ) } ) }
// Transaction creates a new NodeTx object and transactionally executes the
// node-level database interactions invoked by the given function. If the
// function returns no error, all database changes are committed to the
// node-level database, otherwise they are rolled back.
Transaction creates a new NodeTx object and transactionally executes the node - level database interactions invoked by the given function . If the function returns no error all database changes are committed to the node - level database otherwise they are rolled back .