MCPcopy Create free account
hub / github.com/bytebase/bytebase / GetInstanceMeta

Method GetInstanceMeta

backend/runner/schemasync/syncer.go:275–296  ·  view source on GitHub ↗

GetInstanceMeta gets the instance metadata.

(ctx context.Context, instance *store.InstanceMessage)

Source from the content-addressed store, hash-verified

273
274// GetInstanceMeta gets the instance metadata.
275func (s *Syncer) GetInstanceMeta(ctx context.Context, instance *store.InstanceMessage) (*db.InstanceMetadata, error) {
276 driver, err := s.dbFactory.GetAdminDatabaseDriver(ctx, instance, nil /* database */, db.ConnectionContext{})
277 if err != nil {
278 return nil, err
279 }
280 defer driver.Close(ctx)
281
282 deadlineCtx, cancelFunc := context.WithDeadline(ctx, time.Now().Add(syncTimeout))
283 defer cancelFunc()
284 instanceMeta, err := driver.SyncInstance(deadlineCtx)
285 if err != nil {
286 return nil, errors.Wrapf(err, "failed to sync instance: %s", instance.ResourceID)
287 }
288
289 if instanceMeta.Metadata == nil {
290 instanceMeta.Metadata = &storepb.Instance{}
291 }
292
293 instanceMeta.Metadata.LastSyncTime = timestamppb.Now()
294
295 return instanceMeta, nil
296}
297
298// SyncInstance syncs the schema for all databases in an instance.
299func (s *Syncer) SyncInstance(ctx context.Context, instance *store.InstanceMessage) (*store.InstanceMessage, []*storepb.DatabaseSchemaMetadata, []*store.DatabaseMessage, error) {

Callers 2

SyncInstanceMethod · 0.95
ListInstanceDatabaseMethod · 0.80

Calls 3

CloseMethod · 0.65
SyncInstanceMethod · 0.65

Tested by

no test coverage detected