MCPcopy Create free account
hub / github.com/featureform/featureform / CreateProvider

Method CreateProvider

api/main.go:596–622  ·  view source on GitHub ↗
(ctx context.Context, provider *pb.Provider)

Source from the content-addressed store, hash-verified

594}
595
596func (serv *MetadataServer) CreateProvider(ctx context.Context, provider *pb.Provider) (*pb.Empty, error) {
597 // The existence of a provider is part of the determination for checking provider health, hence why it
598 // needs to happen prior to the call to CreateProvider, which is an upsert operation.
599 shouldCheckProviderHealth, err := serv.shouldCheckProviderHealth(ctx, provider)
600 if err != nil {
601 return nil, err
602 }
603 serv.Logger.Infow("Creating Provider", "name", provider.Name)
604 _, err = serv.meta.CreateProvider(ctx, provider)
605 if err != nil && status.Code(err) != codes.AlreadyExists {
606 serv.Logger.Errorw("Failed to create provider", "error", err)
607 return nil, err
608 }
609 if !serv.health.IsSupportedProvider(pt.Type(provider.Type)) {
610 serv.Logger.Infow("Provider type is currently not supported for health check", "type", provider.Type)
611 return &pb.Empty{}, nil
612 }
613 if shouldCheckProviderHealth {
614 serv.Logger.Infow("Checking provider health", "name", provider.Name)
615 err := serv.checkProviderHealth(ctx, provider.Name)
616 if err != nil {
617 serv.Logger.Errorw("Failed to set provider status", "error", err, "health check error", err)
618 return nil, err
619 }
620 }
621 return &pb.Empty{}, err
622}
623
624func (serv *MetadataServer) shouldCheckProviderHealth(ctx context.Context, provider *pb.Provider) (bool, error) {
625 var existingProvider *pb.Provider

Callers

nothing calls this directly

Calls 4

checkProviderHealthMethod · 0.95
IsSupportedProviderMethod · 0.80
TypeMethod · 0.65

Tested by

no test coverage detected