// 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 }