mirror of https://github.com/containers/podman.git
				
				
				
			
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
| package specgen
 | |
| 
 | |
| //func createBlockIO() (*spec.LinuxBlockIO, error) {
 | |
| //	var ret *spec.LinuxBlockIO
 | |
| //	bio := &spec.LinuxBlockIO{}
 | |
| //	if c.Resources.BlkioWeight > 0 {
 | |
| //		ret = bio
 | |
| //		bio.Weight = &c.Resources.BlkioWeight
 | |
| //	}
 | |
| //	if len(c.Resources.BlkioWeightDevice) > 0 {
 | |
| //		var lwds []spec.LinuxWeightDevice
 | |
| //		ret = bio
 | |
| //		for _, i := range c.Resources.BlkioWeightDevice {
 | |
| //			wd, err := ValidateweightDevice(i)
 | |
| //			if err != nil {
 | |
| //				return ret, errors.Wrapf(err, "invalid values for blkio-weight-device")
 | |
| //			}
 | |
| //			wdStat, err := GetStatFromPath(wd.Path)
 | |
| //			if err != nil {
 | |
| //				return ret, errors.Wrapf(err, "error getting stat from path %q", wd.Path)
 | |
| //			}
 | |
| //			lwd := spec.LinuxWeightDevice{
 | |
| //				Weight: &wd.Weight,
 | |
| //			}
 | |
| //			lwd.Major = int64(unix.Major(wdStat.Rdev))
 | |
| //			lwd.Minor = int64(unix.Minor(wdStat.Rdev))
 | |
| //			lwds = append(lwds, lwd)
 | |
| //		}
 | |
| //		bio.WeightDevice = lwds
 | |
| //	}
 | |
| //	if len(c.Resources.DeviceReadBps) > 0 {
 | |
| //		ret = bio
 | |
| //		readBps, err := makeThrottleArray(c.Resources.DeviceReadBps, bps)
 | |
| //		if err != nil {
 | |
| //			return ret, err
 | |
| //		}
 | |
| //		bio.ThrottleReadBpsDevice = readBps
 | |
| //	}
 | |
| //	if len(c.Resources.DeviceWriteBps) > 0 {
 | |
| //		ret = bio
 | |
| //		writeBpds, err := makeThrottleArray(c.Resources.DeviceWriteBps, bps)
 | |
| //		if err != nil {
 | |
| //			return ret, err
 | |
| //		}
 | |
| //		bio.ThrottleWriteBpsDevice = writeBpds
 | |
| //	}
 | |
| //	if len(c.Resources.DeviceReadIOps) > 0 {
 | |
| //		ret = bio
 | |
| //		readIOps, err := makeThrottleArray(c.Resources.DeviceReadIOps, iops)
 | |
| //		if err != nil {
 | |
| //			return ret, err
 | |
| //		}
 | |
| //		bio.ThrottleReadIOPSDevice = readIOps
 | |
| //	}
 | |
| //	if len(c.Resources.DeviceWriteIOps) > 0 {
 | |
| //		ret = bio
 | |
| //		writeIOps, err := makeThrottleArray(c.Resources.DeviceWriteIOps, iops)
 | |
| //		if err != nil {
 | |
| //			return ret, err
 | |
| //		}
 | |
| //		bio.ThrottleWriteIOPSDevice = writeIOps
 | |
| //	}
 | |
| //	return ret, nil
 | |
| //}
 | |
| 
 | |
| //func makeThrottleArray(throttleInput []string, rateType int) ([]spec.LinuxThrottleDevice, error) {
 | |
| //	var (
 | |
| //		ltds []spec.LinuxThrottleDevice
 | |
| //		t    *throttleDevice
 | |
| //		err  error
 | |
| //	)
 | |
| //	for _, i := range throttleInput {
 | |
| //		if rateType == bps {
 | |
| //			t, err = validateBpsDevice(i)
 | |
| //		} else {
 | |
| //			t, err = validateIOpsDevice(i)
 | |
| //		}
 | |
| //		if err != nil {
 | |
| //			return []spec.LinuxThrottleDevice{}, err
 | |
| //		}
 | |
| //		ltdStat, err := GetStatFromPath(t.path)
 | |
| //		if err != nil {
 | |
| //			return ltds, errors.Wrapf(err, "error getting stat from path %q", t.path)
 | |
| //		}
 | |
| //		ltd := spec.LinuxThrottleDevice{
 | |
| //			Rate: t.rate,
 | |
| //		}
 | |
| //		ltd.Major = int64(unix.Major(ltdStat.Rdev))
 | |
| //		ltd.Minor = int64(unix.Minor(ltdStat.Rdev))
 | |
| //		ltds = append(ltds, ltd)
 | |
| //	}
 | |
| //	return ltds, nil
 | |
| //}
 |