github.com/Cloud-Foundations/Dominator@v0.3.4/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.params.ScannerConfiguration.DefaultCpuPercent = request.CpuPercent
    17  		t.params.ScannerConfiguration.CpuLimiter.SetCpuPercent(
    18  			request.CpuPercent)
    19  	}
    20  	if request.NetworkSpeedPercent > 0 {
    21  		t.params.ScannerConfiguration.NetworkReaderContext.SetSpeedPercent(
    22  			request.NetworkSpeedPercent)
    23  	}
    24  	if request.ScanSpeedPercent > 0 {
    25  		t.params.ScannerConfiguration.FsScanContext.GetContext().SetSpeedPercent(
    26  			request.ScanSpeedPercent)
    27  	}
    28  	newFilter, err := filter.New(request.ScanExclusionList)
    29  	if err != nil {
    30  		return err
    31  	}
    32  	t.params.ScannerConfiguration.ScanFilter = newFilter
    33  	t.params.Logger.Printf("SetConfiguration()\n")
    34  	return nil
    35  }