(ctx context.Context, req *pb.BackupRequest)
| 174 | } |
| 175 | |
| 176 | func backupCurrentGroup(ctx context.Context, req *pb.BackupRequest) (*pb.BackupResponse, error) { |
| 177 | glog.Infof("Backup request: group %d at %d", req.GroupId, req.ReadTs) |
| 178 | if err := ctx.Err(); err != nil { |
| 179 | glog.Errorf("Context error during backup: %v\n", err) |
| 180 | return nil, err |
| 181 | } |
| 182 | |
| 183 | g := groups() |
| 184 | if g.groupId() != req.GroupId { |
| 185 | return nil, errors.Errorf("Backup request group mismatch. Mine: %d. Requested: %d\n", |
| 186 | g.groupId(), req.GroupId) |
| 187 | } |
| 188 | |
| 189 | if err := posting.Oracle().WaitForTs(ctx, req.ReadTs); err != nil { |
| 190 | return nil, err |
| 191 | } |
| 192 | |
| 193 | closer, err := g.Node.startTaskAtTs(opBackup, req.ReadTs) |
| 194 | if err != nil { |
| 195 | return nil, errors.Wrapf(err, "cannot start backup operation") |
| 196 | } |
| 197 | defer closer.Done() |
| 198 | |
| 199 | bp := NewBackupProcessor(pstore, req) |
| 200 | defer bp.Close() |
| 201 | |
| 202 | return bp.WriteBackup(closer.Ctx()) |
| 203 | } |
| 204 | |
| 205 | // BackupGroup backs up the group specified in the backup request. |
| 206 | func BackupGroup(ctx context.Context, in *pb.BackupRequest) (*pb.BackupResponse, error) { |
no test coverage detected