Cluster Service Listening Bus
The NewService
function eventually populates a service
struct and passes the variable to the run
method which invokes a perpetual listening bus for new deployments. The deployments
argument is additionally passed into the run
method as an argument.
s := &service{
session: session,
client: client,
hostnames: hostnames,
bus: bus,
sub: sub,
inventory: inventory,
statusch: make(chan chan<- *ctypes.Status),
managers: make(map[mtypes.LeaseID]*deploymentManager),
managerch: make(chan *deploymentManager),
checkDeploymentExistsRequestCh: make(chan checkDeploymentExistsRequest),
log: log,
lc: lc,
config: cfg,
waiter: waiter,
}
go s.lc.WatchContext(ctx)
go s.run(ctx, deployments)