Merge pull request #3785 from Random-Liu/support-disk-usage-windows
Support disk usage in windows snapshot.
This commit is contained in:
commit
a176179a08
@ -165,9 +165,8 @@ func (o *snapshotter) Usage(ctx context.Context, key string) (snapshots.Usage, e
|
|||||||
return snapshots.Usage{}, err
|
return snapshots.Usage{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
upperPath := o.upperPath(id)
|
|
||||||
|
|
||||||
if info.Kind == snapshots.KindActive {
|
if info.Kind == snapshots.KindActive {
|
||||||
|
upperPath := o.upperPath(id)
|
||||||
du, err := fs.DiskUsage(ctx, upperPath)
|
du, err := fs.DiskUsage(ctx, upperPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// TODO(stevvooe): Consider not reporting an error in this case.
|
// TODO(stevvooe): Consider not reporting an error in this case.
|
||||||
|
@ -125,17 +125,20 @@ func (s *snapshotter) Usage(ctx context.Context, key string) (snapshots.Usage, e
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return snapshots.Usage{}, err
|
return snapshots.Usage{}, err
|
||||||
}
|
}
|
||||||
defer t.Rollback()
|
id, info, usage, err := storage.GetInfo(ctx, key)
|
||||||
|
t.Rollback() // transaction no longer needed at this point.
|
||||||
|
|
||||||
_, info, usage, err := storage.GetInfo(ctx, key)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return snapshots.Usage{}, err
|
return snapshots.Usage{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if info.Kind == snapshots.KindActive {
|
if info.Kind == snapshots.KindActive {
|
||||||
du := fs.Usage{
|
path := s.getSnapshotDir(id)
|
||||||
Size: 0,
|
du, err := fs.DiskUsage(ctx, path)
|
||||||
|
if err != nil {
|
||||||
|
return snapshots.Usage{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
usage = snapshots.Usage(du)
|
usage = snapshots.Usage(du)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,20 +176,30 @@ func (s *snapshotter) Commit(ctx context.Context, name, key string, opts ...snap
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer t.Rollback()
|
|
||||||
|
|
||||||
usage := fs.Usage{
|
defer func() {
|
||||||
Size: 0,
|
if err != nil {
|
||||||
|
if rerr := t.Rollback(); rerr != nil {
|
||||||
|
log.G(ctx).WithError(rerr).Warn("failed to rollback transaction")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
// grab the existing id
|
||||||
|
id, _, _, err := storage.GetInfo(ctx, key)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
usage, err := fs.DiskUsage(ctx, s.getSnapshotDir(id))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err = storage.CommitActive(ctx, key, name, snapshots.Usage(usage), opts...); err != nil {
|
if _, err = storage.CommitActive(ctx, key, name, snapshots.Usage(usage), opts...); err != nil {
|
||||||
return errors.Wrap(err, "failed to commit snapshot")
|
return errors.Wrap(err, "failed to commit snapshot")
|
||||||
}
|
}
|
||||||
|
return t.Commit()
|
||||||
if err := t.Commit(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove abandons the transaction identified by key. All resources
|
// Remove abandons the transaction identified by key. All resources
|
||||||
|
Loading…
Reference in New Issue
Block a user