mirror of https://github.com/grafana/grafana.git
				
				
				
			Remove dependency from OSS to enterprise packages by moving Spanner functions to xorm. (#102692)
* Remove dependency from OSS to enterprise packages by moving Spanner functions to xorm.
This commit is contained in:
		
							parent
							
								
									d4a4aac8d1
								
							
						
					
					
						commit
						00db0cf6e6
					
				
							
								
								
									
										2
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										2
									
								
								go.mod
								
								
								
								
							|  | @ -560,12 +560,12 @@ require ( | |||
| ) | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/1NCE-GmbH/grpc-go-pool v0.0.0-20231117122434-2a5bb974daa2 // @grafana/grafana-search-and-storage | ||||
| 	github.com/open-feature/go-sdk v1.14.1 // @grafana/grafana-backend-group | ||||
| 	github.com/open-feature/go-sdk-contrib/providers/go-feature-flag v0.2.3 // @grafana/grafana-backend-group | ||||
| ) | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/1NCE-GmbH/grpc-go-pool v0.0.0-20231117122434-2a5bb974daa2 // indirect | ||||
| 	github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0 // indirect | ||||
| 	github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 // indirect | ||||
| 	github.com/RoaringBitmap/roaring/v2 v2.4.5 // indirect | ||||
|  |  | |||
|  | @ -17,7 +17,6 @@ import ( | |||
| 	"google.golang.org/grpc/codes" | ||||
| 	"xorm.io/core" | ||||
| 
 | ||||
| 	spannerext "github.com/grafana/grafana/pkg/extensions/spanner" | ||||
| 	"xorm.io/xorm" | ||||
| 
 | ||||
| 	_ "embed" | ||||
|  | @ -291,7 +290,7 @@ func (s *SpannerDialect) executeDDLStatements(ctx context.Context, engine *xorm. | |||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	opts := spannerext.SpannerConnectorConfigToClientOptions(cfg) | ||||
| 	opts := xorm.SpannerConnectorConfigToClientOptions(cfg) | ||||
| 
 | ||||
| 	databaseAdminClient, err := database.NewDatabaseAdminClient(ctx, opts...) | ||||
| 	if err != nil { | ||||
|  |  | |||
|  | @ -10,9 +10,10 @@ import ( | |||
| 
 | ||||
| 	_ "github.com/googleapis/go-sql-spanner" | ||||
| 	spannerdriver "github.com/googleapis/go-sql-spanner" | ||||
| 	"google.golang.org/api/option" | ||||
| 	"google.golang.org/grpc" | ||||
| 	"google.golang.org/grpc/credentials/insecure" | ||||
| 	"xorm.io/core" | ||||
| 
 | ||||
| 	spannerext "github.com/grafana/grafana/pkg/extensions/spanner" | ||||
| ) | ||||
| 
 | ||||
| func init() { | ||||
|  | @ -381,7 +382,7 @@ func (s *spanner) CreateSequenceGenerator(db *sql.DB) (SequenceGenerator, error) | |||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	if spannerext.UsePlainText(connectorConfig) { | ||||
| 	if UsePlainText(connectorConfig) { | ||||
| 		// Plain-text means we're either using spannertest or Spanner emulator.
 | ||||
| 		// Switch to fake in-memory sequence number generator in that case.
 | ||||
| 		//
 | ||||
|  | @ -393,3 +394,32 @@ func (s *spanner) CreateSequenceGenerator(db *sql.DB) (SequenceGenerator, error) | |||
| 
 | ||||
| 	return newSequenceGenerator(db), nil | ||||
| } | ||||
| 
 | ||||
| func UsePlainText(connectorConfig spannerdriver.ConnectorConfig) bool { | ||||
| 	if strval, ok := connectorConfig.Params["useplaintext"]; ok { | ||||
| 		if val, err := strconv.ParseBool(strval); err == nil { | ||||
| 			return val | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
| 
 | ||||
| // SpannerConnectorConfigToClientOptions is adapted from https://github.com/googleapis/go-sql-spanner/blob/main/driver.go#L341-L477, from version 1.11.1.
 | ||||
| func SpannerConnectorConfigToClientOptions(connectorConfig spannerdriver.ConnectorConfig) []option.ClientOption { | ||||
| 	var opts []option.ClientOption | ||||
| 	if connectorConfig.Host != "" { | ||||
| 		opts = append(opts, option.WithEndpoint(connectorConfig.Host)) | ||||
| 	} | ||||
| 	if strval, ok := connectorConfig.Params["credentials"]; ok { | ||||
| 		opts = append(opts, option.WithCredentialsFile(strval)) | ||||
| 	} | ||||
| 	if strval, ok := connectorConfig.Params["credentialsjson"]; ok { | ||||
| 		opts = append(opts, option.WithCredentialsJSON([]byte(strval))) | ||||
| 	} | ||||
| 	if UsePlainText(connectorConfig) { | ||||
| 		opts = append(opts, | ||||
| 			option.WithGRPCDialOption(grpc.WithTransportCredentials(insecure.NewCredentials())), | ||||
| 			option.WithoutAuthentication()) | ||||
| 	} | ||||
| 	return opts | ||||
| } | ||||
|  |  | |||
|  | @ -7,6 +7,8 @@ require ( | |||
| 	github.com/googleapis/go-sql-spanner v1.11.1 | ||||
| 	github.com/mattn/go-sqlite3 v1.14.22 | ||||
| 	github.com/stretchr/testify v1.10.0 | ||||
| 	google.golang.org/api v0.220.0 | ||||
| 	google.golang.org/grpc v1.70.0 | ||||
| 	xorm.io/builder v0.3.6 | ||||
| 	xorm.io/core v0.7.3 | ||||
| ) | ||||
|  | @ -55,11 +57,9 @@ require ( | |||
| 	golang.org/x/sys v0.30.0 // indirect | ||||
| 	golang.org/x/text v0.22.0 // indirect | ||||
| 	golang.org/x/time v0.9.0 // indirect | ||||
| 	google.golang.org/api v0.220.0 // indirect | ||||
| 	google.golang.org/genproto v0.0.0-20250122153221-138b5a5a4fd4 // indirect | ||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20250204164813-702378808489 // indirect | ||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20250207221924-e9438ea467c6 // indirect | ||||
| 	google.golang.org/grpc v1.70.0 // indirect | ||||
| 	google.golang.org/protobuf v1.36.5 // indirect | ||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||
| ) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue