github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/lib/slavedriver/smallstack/api.go (about) 1 package smallstack 2 3 import ( 4 "sync" 5 6 "github.com/Cloud-Foundations/Dominator/lib/log" 7 "github.com/Cloud-Foundations/Dominator/lib/slavedriver" 8 "github.com/Cloud-Foundations/Dominator/lib/srpc" 9 hyper_proto "github.com/Cloud-Foundations/Dominator/proto/hypervisor" 10 ) 11 12 type SlaveTrader struct { 13 createRequest hyper_proto.CreateVmRequest 14 logger log.DebugLogger 15 mutex sync.Mutex // Lock everything below (those can change). 16 hypervisor *srpc.Client 17 } 18 19 func NewSlaveTrader(createRequest hyper_proto.CreateVmRequest, 20 logger log.DebugLogger) (*SlaveTrader, error) { 21 return newSlaveTrader(createRequest, logger) 22 } 23 24 func (trader *SlaveTrader) Close() error { 25 return trader.close() 26 } 27 28 func (trader *SlaveTrader) CreateSlave() (slavedriver.SlaveInfo, error) { 29 return trader.createSlave() 30 } 31 32 func (trader *SlaveTrader) DestroySlave(identifier string) error { 33 return trader.destroySlave(identifier) 34 }