github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/sub/rpcd/setConfiguration.go (about)

     1  package rpcd
     2  
     3  import (
     4  	"github.com/Cloud-Foundations/Dominator/lib/filter"
     5  	"github.com/Cloud-Foundations/Dominator/lib/srpc"
     6  	"github.com/Cloud-Foundations/Dominator/proto/sub"
     7  )
     8  
     9  func (t *rpcType) SetConfiguration(conn *srpc.Conn,
    10  	request sub.SetConfigurationRequest,
    11  	reply *sub.SetConfigurationResponse) error {
    12  	if request.CpuPercent > 100 {
    13  		request.CpuPercent = 100
    14  	}
    15  	if request.CpuPercent > 0 {
    16  		t.scannerConfiguration.DefaultCpuPercent = request.CpuPercent
    17  		t.scannerConfiguration.CpuLimiter.SetCpuPercent(request.CpuPercent)
    18  	}
    19  	if request.NetworkSpeedPercent > 0 {
    20  		t.scannerConfiguration.NetworkReaderContext.SetSpeedPercent(
    21  			request.NetworkSpeedPercent)
    22  	}
    23  	if request.ScanSpeedPercent > 0 {
    24  		t.scannerConfiguration.FsScanContext.GetContext().SetSpeedPercent(
    25  			request.ScanSpeedPercent)
    26  	}
    27  	newFilter, err := filter.New(request.ScanExclusionList)
    28  	if err != nil {
    29  		return err
    30  	}
    31  	t.scannerConfiguration.ScanFilter = newFilter
    32  	t.logger.Printf("SetConfiguration()\n")
    33  	return nil
    34  }