Beispiel #1
0
func aggregateVolumeStatus(ctx transaction.TxnCtx, nodes []uuid.UUID) (*volume.VolStatus, error) {
	var brickStatuses []brick.Brickstatus

	// Loop over each node on which txn was run.
	// Fetch brick statuses stored by each node in transaction context.
	for _, node := range nodes {
		var tmp []brick.Brickstatus
		err := ctx.GetNodeResult(node, brickStatusTxnKey, &tmp)
		if err != nil {
			return nil, goerrors.New("aggregateVolumeStatus: Could not fetch results from transaction context.")
		}
		brickStatuses = append(brickStatuses, tmp...)
	}
	v := &volume.VolStatus{Brickstatuses: brickStatuses}
	return v, nil
}