github.com/Cloud-Foundations/Dominator@v0.3.4/dom/rpcd/api.go (about)

     1  package rpcd
     2  
     3  import (
     4  	"github.com/Cloud-Foundations/Dominator/dom/herd"
     5  	"github.com/Cloud-Foundations/Dominator/lib/log"
     6  	"github.com/Cloud-Foundations/Dominator/lib/srpc"
     7  	"github.com/Cloud-Foundations/Dominator/lib/srpc/serverutil"
     8  )
     9  
    10  type rpcType struct {
    11  	herd   *herd.Herd
    12  	logger log.Logger
    13  	*serverutil.PerUserMethodLimiter
    14  }
    15  
    16  func Setup(herd *herd.Herd, logger log.Logger) {
    17  	rpcObj := &rpcType{
    18  		herd:   herd,
    19  		logger: logger,
    20  		PerUserMethodLimiter: serverutil.NewPerUserMethodLimiter(
    21  			map[string]uint{
    22  				"ClearSafetyShutoff":    1,
    23  				"ForceDisruptiveUpdate": 1,
    24  				"GetInfoForSubs":        1,
    25  				"ListSubs":              1,
    26  			}),
    27  	}
    28  	srpc.RegisterNameWithOptions("Dominator", rpcObj,
    29  		srpc.ReceiverOptions{
    30  			PublicMethods: []string{
    31  				"ClearSafetyShutoff",
    32  				"ForceDisruptiveUpdate",
    33  				"GetInfoForSubs",
    34  				"ListSubs",
    35  			}})
    36  }