in internal/cmd/grow_container.go [96:125]
func run(ctx context.Context, utility diskutil.DiskUtil, args growContainer) error {
di, err := getTargetDiskInfo(ctx, utility, args.id)
if err != nil {
return fmt.Errorf("cannot grow container: %w", err)
}
logrus.WithField("device_id", di.DeviceIdentifier).Info("Attempting to grow container...")
if err := diskutil.GrowContainer(ctx, utility, di); err != nil {
// Don't treat FreeSpaceErrors as fatal, instead exit quietly since there's nothing else to do.
if errors.As(err, &diskutil.FreeSpaceError{}) {
logrus.WithField("id", args.id).Info("Nothing to do without free space, stopping command")
return nil
}
return err
}
logrus.WithField("device_id", di.ParentWholeDisk).Info("Fetching updated information for device...")
updatedDi, err := getTargetDiskInfo(ctx, utility, di.ParentWholeDisk)
if err != nil {
logrus.WithError(err).Error("Error while fetching updated disk information")
return err
}
logrus.WithFields(logrus.Fields{
"device_id": di.DeviceIdentifier,
"total_size": humanize.Bytes(updatedDi.TotalSize),
}).Info("Successfully grew device to maximum size")
return nil
}