Ver Fonte

cgroupv2: change newCgroupHook interface

Miao Wang há 4 anos atrás
pai
commit
2949b9c58c
3 ficheiros alterados com 11 adições e 5 exclusões
  1. 6 1
      worker/cgroup.go
  2. 4 2
      worker/cgroup_test.go
  3. 1 2
      worker/provider.go

+ 6 - 1
worker/cgroup.go

@@ -62,7 +62,12 @@ func waitExec () {
   panic("Exec failed.")
 }
 
-func newCgroupHook(p mirrorProvider, basePath, baseGroup, subsystem string, memLimit MemBytes) *cgroupHook {
+func newCgroupHook(p mirrorProvider, cfg cgroupConfig, memLimit MemBytes) *cgroupHook {
+	var (
+	  basePath = cfg.BasePath
+	  baseGroup = cfg.Group
+	  subsystem = cfg.Subsystem
+	)
 	if basePath == "" {
 		basePath = "/sys/fs/cgroup"
 	}

+ 4 - 2
worker/cgroup_test.go

@@ -73,7 +73,8 @@ sleep 30
 		provider, err := newCmdProvider(c)
 		So(err, ShouldBeNil)
 
-		cg := newCgroupHook(provider, "/sys/fs/cgroup", "tunasync", "cpu", 0)
+		cgcf := cgroupConfig{BasePath: "/sys/fs/cgroup", Group: "tunasync", Subsystem: "cpu"}
+		cg := newCgroupHook(provider, cgcf, 0)
 		provider.AddHook(cg)
 
 		err = cg.preExec()
@@ -133,7 +134,8 @@ sleep 30
 		provider, err := newRsyncProvider(c)
 		So(err, ShouldBeNil)
 
-		cg := newCgroupHook(provider, "/sys/fs/cgroup", "tunasync", "cpu", 512 * units.MiB)
+		cgcf := cgroupConfig{BasePath: "/sys/fs/cgroup", Group: "tunasync", Subsystem: "cpu"}
+		cg := newCgroupHook(provider, cgcf, 512 * units.MiB)
 		provider.AddHook(cg)
 
 		err = cg.preExec()

+ 1 - 2
worker/provider.go

@@ -212,8 +212,7 @@ func newMirrorProvider(mirror mirrorConfig, cfg *Config) mirrorProvider {
 		// Add Cgroup Hook
 		provider.AddHook(
 			newCgroupHook(
-				provider, cfg.Cgroup.BasePath, cfg.Cgroup.Group,
-				cfg.Cgroup.Subsystem, mirror.MemoryLimit,
+				provider, cfg.Cgroup, mirror.MemoryLimit,
 			),
 		)
 	}