MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / allDatabaseSummaries

Method allDatabaseSummaries

rest/server_context.go:425–467  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

423}
424
425func (sc *ServerContext) allDatabaseSummaries() []DbSummary {
426 sc._databasesLock.RLock()
427 defer sc._databasesLock.RUnlock()
428
429 dbs := make([]DbSummary, 0, len(sc._databases))
430 for name, dbctx := range sc._databases {
431 state := db.RunStateString[atomic.LoadUint32(&dbctx.State)]
432 summary := DbSummary{
433 DBName: name,
434 Bucket: dbctx.Bucket.GetName(),
435 State: state,
436 DatabaseError: dbctx.DatabaseStartupError,
437 }
438 if state == db.RunStateString[db.DBOffline] {
439 if len(dbctx.RequireResync.ScopeAndCollectionNames()) > 0 {
440 summary.RequireResync = true
441 }
442 }
443 if sc.DatabaseInitManager.HasActiveInitialization(name) {
444 summary.InitializationActive = true
445 }
446 dbs = append(dbs, summary)
447 }
448 sc.invalidDatabaseConfigTracking.m.RLock()
449 defer sc.invalidDatabaseConfigTracking.m.RUnlock()
450 for name, invalidConfig := range sc.invalidDatabaseConfigTracking.dbNames {
451 // skip adding any invalid dbs with no error associated with them or that exist in above list
452 if invalidConfig.databaseError == nil || sc._databases[name] != nil {
453 continue
454 }
455 summary := DbSummary{
456 DBName: name,
457 Bucket: invalidConfig.configBucketName,
458 State: db.RunStateString[db.DBOffline], // db can always be reported as offline if we have an invalid config
459 DatabaseError: invalidConfig.databaseError,
460 }
461 dbs = append(dbs, summary)
462 }
463 sort.Slice(dbs, func(i, j int) bool {
464 return dbs[i].DBName < dbs[j].DBName
465 })
466 return dbs
467}
468
469// AllDatabases returns a copy of the _databases map.
470func (sc *ServerContext) AllDatabases() map[string]*db.DatabaseContext {

Callers 3

handleAllDbsMethod · 0.80

Calls 5

RLockMethod · 0.80
RUnlockMethod · 0.80
GetNameMethod · 0.65