Skip to content

Commit 38023b0

Browse files
georgethebeatleCF Garden
authored and
CF Garden
committed
Add more logging to disk quota setting for overlay
[finishes #151942791]
1 parent dcebdb1 commit 38023b0

File tree

6 files changed

+21
-12
lines changed

6 files changed

+21
-12
lines changed

store/filesystems/overlayxfs/driver.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"encoding/json"
66
"fmt"
7+
"io"
78
"io/ioutil"
89
"os"
910
"os/exec"
@@ -632,8 +633,9 @@ func (d *Driver) runTardis(logger lager.Logger, args ...string) (*bytes.Buffer,
632633

633634
cmd := exec.Command(d.tardisBinPath, args...)
634635
stdoutBuffer := bytes.NewBuffer([]byte{})
635-
cmd.Stdout = stdoutBuffer
636-
cmd.Stderr = lagregator.NewRelogger(logger)
636+
relogger := lagregator.NewRelogger(logger)
637+
cmd.Stdout = io.MultiWriter(stdoutBuffer, relogger)
638+
cmd.Stderr = relogger
637639

638640
err := cmd.Run()
639641

store/filesystems/overlayxfs/quota/projectquota_cgo.go

+8-5
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ import (
6161
"syscall"
6262
"unsafe"
6363

64-
"github.com/sirupsen/logrus"
64+
"code.cloudfoundry.org/lager"
6565
)
6666

6767
// Quota limit params - currently we only control blocks hard limit
@@ -73,6 +73,7 @@ type Quota struct {
7373
// Control - Context to be used by storage driver (e.g. overlay)
7474
// who wants to apply project quotas to container dirs
7575
type Control struct {
76+
logger lager.Logger
7677
backingFsBlockDev string
7778
nextProjectID uint32
7879
quotas map[string]uint32
@@ -100,7 +101,8 @@ type Control struct {
100101
// on it. If that works, continue to scan existing containers to map allocated
101102
// project ids.
102103
//
103-
func NewControl(basePath string) (*Control, error) {
104+
func NewControl(logger lager.Logger, basePath string) (*Control, error) {
105+
logger = logger.Session("projectquota")
104106
//
105107
// Get project id of parent dir as minimal id to be used by driver
106108
//
@@ -130,6 +132,7 @@ func NewControl(basePath string) (*Control, error) {
130132
}
131133

132134
q := Control{
135+
logger: logger,
133136
backingFsBlockDev: backingFsBlockDev,
134137
nextProjectID: minProjectID + 1,
135138
quotas: make(map[string]uint32),
@@ -143,7 +146,7 @@ func NewControl(basePath string) (*Control, error) {
143146
return nil, err
144147
}
145148

146-
logrus.Debugf("NewControl(%s): nextProjectID = %d", basePath, q.nextProjectID)
149+
q.logger.Debug("quota-control-created", lager.Data{"basePath": basePath, "projectID": q.nextProjectID})
147150
return &q, nil
148151
}
149152

@@ -169,7 +172,7 @@ func (q *Control) SetQuota(nextProjectID uint32, targetPath string, quota Quota)
169172
//
170173
// set the quota limit for the container's project id
171174
//
172-
logrus.Debugf("SetQuota(%s, %d): projectID=%d", targetPath, quota.Size, projectID)
175+
q.logger.Debug("set-quota", lager.Data{"targetPath": targetPath, "quota": quota.Size, "projectID": projectID})
173176
return setProjectQuota(q.backingFsBlockDev, projectID, quota)
174177
}
175178

@@ -228,7 +231,7 @@ func (q *Control) GetQuota(targetPath string, quota *Quota) error {
228231
}
229232

230233
// GetProjectID - get the project id of path on xfs
231-
func GetProjectID(targetPath string) (uint32, error) {
234+
func GetProjectID(targetPath string) (projId uint32, err error) {
232235
dir, err := openDir(targetPath)
233236
if err != nil {
234237
return 0, err

store/filesystems/overlayxfs/quota/projectquota_nocgo.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
package quota
66

7+
import "code.cloudfoundry.org/lager"
8+
79
type Quota struct {
810
Size uint64
911
BCount uint64
@@ -12,7 +14,7 @@ type Quota struct {
1214
type Control struct {
1315
}
1416

15-
func NewControl(basePath string) (*Control, error) {
17+
func NewControl(logger lager.Logger, basePath string) (*Control, error) {
1618
return nil, nil
1719
}
1820

store/filesystems/overlayxfs/tardis/commands/limit.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ var LimitCommand = cli.Command{
3737
imagePath := ctx.String("image-path")
3838
imagesPath := filepath.Dir(imagePath)
3939

40-
quotaControl, err := quotapkg.NewControl(imagesPath)
40+
quotaControl, err := quotapkg.NewControl(logger, imagesPath)
4141
if err != nil {
4242
logger.Error("creating-quota-control-failed", err, lager.Data{"imagesPath": imagesPath})
4343
return errorspkg.Wrapf(err, "creating xfs quota control %s", imagesPath)

store/filesystems/overlayxfs/tardis/ids/discoverer.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ type Discoverer struct {
2121
idsPath string
2222
}
2323

24-
func (i *Discoverer) Alloc(logger lager.Logger) (uint32, error) {
24+
func (i *Discoverer) Alloc(logger lager.Logger) (projId uint32, err error) {
2525
logger = logger.Session("project-id-allocation")
2626
logger.Debug("starting")
27-
defer logger.Debug("ending")
27+
defer func() {
28+
logger.Debug("ending", lager.Data{"projectID": projId})
29+
}()
2830

2931
contents, err := ioutil.ReadDir(i.idsPath)
3032
if err != nil {

store/filesystems/overlayxfs/tardis/stats/stats.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func listQuotaUsage(logger lager.Logger, imagePath string) (int64, error) {
5959
defer logger.Debug("ending")
6060

6161
imagesPath := filepath.Dir(imagePath)
62-
quotaControl, err := quotapkg.NewControl(imagesPath)
62+
quotaControl, err := quotapkg.NewControl(logger, imagesPath)
6363
if err != nil {
6464
logger.Error("creating-quota-control-failed", err)
6565
return 0, errorspkg.Wrapf(err, "creating quota control")

0 commit comments

Comments
 (0)