From 7b00678cb2e0472eddf32b0b176247f0b665fe9b Mon Sep 17 00:00:00 2001 From: Mark Phelps <209477+markphelps@users.noreply.github.com> Date: Wed, 20 Sep 2023 13:15:59 -0400 Subject: [PATCH] fix: export with https --- cmd/flipt/export.go | 6 +++++- cmd/flipt/import.go | 9 +++++---- cmd/flipt/server.go | 12 ++++++------ go.work.sum | 1 + 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/cmd/flipt/export.go b/cmd/flipt/export.go index 723dff2a4b..4105fd6809 100644 --- a/cmd/flipt/export.go +++ b/cmd/flipt/export.go @@ -85,7 +85,11 @@ func (c *exportCommand) run(cmd *cobra.Command, _ []string) error { // Use client when remote address is configured. if c.address != "" { - return c.export(cmd.Context(), out, fliptClient(logger, c.address, c.token)) + client, err := fliptClient(c.address, c.token) + if err != nil { + return err + } + return c.export(cmd.Context(), out, client) } // Otherwise, go direct to the DB using Flipt configuration file. diff --git a/cmd/flipt/import.go b/cmd/flipt/import.go index 0a04680f35..4b07e9625e 100644 --- a/cmd/flipt/import.go +++ b/cmd/flipt/import.go @@ -120,10 +120,11 @@ func (c *importCommand) run(cmd *cobra.Command, args []string) error { // Use client when remote address is configured. if c.address != "" { - return ext.NewImporter( - fliptClient(logger, c.address, c.token), - opts..., - ).Import(cmd.Context(), in) + client, err := fliptClient(c.address, c.token) + if err != nil { + return err + } + return ext.NewImporter(client, opts...).Import(cmd.Context(), in) } logger, cfg := buildConfig() diff --git a/cmd/flipt/server.go b/cmd/flipt/server.go index c20f0ae93b..d4d1ef976d 100644 --- a/cmd/flipt/server.go +++ b/cmd/flipt/server.go @@ -43,26 +43,26 @@ func fliptServer(logger *zap.Logger, cfg *config.Config) (*server.Server, func() return server.New(logger, store), func() { _ = db.Close() }, nil } -func fliptClient(logger *zap.Logger, address, token string) *sdk.Flipt { +func fliptClient(address, token string) (*sdk.Flipt, error) { addr, err := url.Parse(address) if err != nil { - logger.Fatal("export address is invalid", zap.Error(err)) + return nil, fmt.Errorf("export address is invalid %w", err) } var transport sdk.Transport switch addr.Scheme { - case "http": + case "http", "https": transport = sdkhttp.NewTransport(address) case "grpc": conn, err := grpc.Dial(addr.Host, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { - logger.Fatal("failed to dial Flipt", zap.Error(err)) + return nil, fmt.Errorf("failed to dial Flipt %w", err) } transport = sdkgrpc.NewTransport(conn) default: - logger.Fatal("unexpected protocol", zap.String("address", address)) + return nil, fmt.Errorf("unexpected protocol %s", addr.Scheme) } var opts []sdk.Option @@ -72,5 +72,5 @@ func fliptClient(logger *zap.Logger, address, token string) *sdk.Flipt { )) } - return sdk.New(transport, opts...).Flipt() + return sdk.New(transport, opts...).Flipt(), nil } diff --git a/go.work.sum b/go.work.sum index 71f26cf764..112d8498f0 100644 --- a/go.work.sum +++ b/go.work.sum @@ -983,6 +983,7 @@ github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUB github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=