Exemple #1
0
// NewManager constructs a RegionManager for use
func NewManager(mgmURL string, simianURL string, pers persist.MGMDB, osdb persist.Database, notify notifier, log logger.Log) Manager {
	rMgr := Manager{}
	rMgr.simianURL = simianURL
	rMgr.mgmURL = mgmURL
	rMgr.mgm = pers
	rMgr.osdb = osdb
	rMgr.log = logger.Wrap("REGION", log)
	rMgr.regions = make(map[uuid.UUID]mgm.Region)
	rMgr.regionStats = make(map[uuid.UUID]mgm.RegionStat)
	rMgr.rMutex = &sync.Mutex{}
	rMgr.rsMutex = &sync.Mutex{}
	rMgr.notify = notify

	for _, r := range pers.QueryRegions() {
		rMgr.regions[r.UUID] = r
		rMgr.regionStats[r.UUID] = mgm.RegionStat{}
	}

	return rMgr
}