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  }