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 }