diff --git a/pkg/extension/action_url.go b/pkg/extension/action_url.go index c0285f1c8bf88aa96e04283a0f1287eaa28d6128..5552b81a43ee237788a3ca217e9c6cbd49f7351c 100644 --- a/pkg/extension/action_url.go +++ b/pkg/extension/action_url.go @@ -9,11 +9,11 @@ import ( // ActionURL структура для хранения данных о переданном действии type ActionURL struct { - actionURL string - actionID string - extensionID string - scheme string - url *url.URL + actionURL string + actionID string + extension string + scheme string + url *url.URL } // NewActionURL возвращает пустую структуру ActionURL, если передано пустое действие @@ -29,7 +29,7 @@ func (p *ActionURL) ID() string { // Extension возвращает сохраненный в ActionURL id расширения func (p *ActionURL) Extension() string { - return p.extensionID + return p.extension } // Scheme возвращает сохраненную в ActionURL схему @@ -59,7 +59,7 @@ func parseActionURL(action string) (*ActionURL, error) { if len(splitPath) < 2 { return nil, errors.Errorf("incorrect action URL, no action id: '%s'", action) } - parsed.extensionID = splitPath[0] + parsed.extension = splitPath[0] parsed.actionID = splitPath[1] } return parsed, nil diff --git a/pkg/extension/action_url_test.go b/pkg/extension/action_url_test.go index 7c5ef5e43559efb9158e698e9adfccfbf21c5d5a..e71ef1b6acf54fd629904893551e08995f2fd2d2 100644 --- a/pkg/extension/action_url_test.go +++ b/pkg/extension/action_url_test.go @@ -9,53 +9,49 @@ import ( ) func TestNewActionURL(t *testing.T) { - u1, _ := url.Parse("build-site") - u2, _ := url.Parse("grpc:///perxisweb/build-site") - u3, _ := url.Parse("ui:///space/env/coll") - u4, _ := url.Parse("https://perx.ru") tests := []struct { name string action string want *ActionURL + url string wantErr assert.ErrorAssertionFunc }{ { - "Without action", - "", - &ActionURL{}, - assert.NoError, + name: "Without action", + want: &ActionURL{}, + wantErr: assert.NoError, }, { - "Without deprecated action call", - "build-site", - &ActionURL{ + name: "Without deprecated action call", + action: "build-site", + want: &ActionURL{ actionURL: "build-site", - url: u1, }, - assert.NoError, + url: "build-site", + wantErr: assert.NoError, }, { name: "With grpc action", action: "grpc:///perxisweb/build-site", want: &ActionURL{ - actionURL: "grpc:///perxisweb/build-site", - actionID: "build-site", - extensionID: "perxisweb", - scheme: "grpc", - url: u2, + actionURL: "grpc:///perxisweb/build-site", + actionID: "build-site", + extension: "perxisweb", + scheme: "grpc", }, + url: "grpc:///perxisweb/build-site", wantErr: assert.NoError, }, { name: "With ui action", action: "ui:///space/env/coll", want: &ActionURL{ - actionURL: "ui:///space/env/coll", - actionID: "", - extensionID: "", - scheme: "ui", - url: u3, + actionURL: "ui:///space/env/coll", + actionID: "", + extension: "", + scheme: "ui", }, + url: "ui:///space/env/coll", wantErr: assert.NoError, }, { @@ -64,8 +60,8 @@ func TestNewActionURL(t *testing.T) { want: &ActionURL{ actionURL: "https://perx.ru", scheme: "https", - url: u4, }, + url: "https://perx.ru", wantErr: assert.NoError, }, { @@ -77,6 +73,9 @@ func TestNewActionURL(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { + if tt.url != "" { + tt.want.url, _ = url.Parse(tt.url) + } got, err := NewActionURL(tt.action) if !tt.wantErr(t, err, fmt.Sprintf("NewActionURL(%v)", tt.action)) { return diff --git a/pkg/extension/server.go b/pkg/extension/server.go index bdeac58c14bf37b20104e23ecff96c70cf900930..aec70ff7a71128ed312030cc3bd28541f7f969f4 100644 --- a/pkg/extension/server.go +++ b/pkg/extension/server.go @@ -80,16 +80,16 @@ func (srv *Server) Update(ctx context.Context, request *UpdateRequest) (*UpdateR } func (srv *Server) Action(ctx context.Context, in *pb.ActionRequest) (*pb.ActionResponse, error) { - extensionID := in.Extension - if extensionID == "" { + ext := in.Extension + if ext == "" { actionURL, err := NewActionURL(in.Action) if err != nil { return nil, err } - extensionID = actionURL.extensionID + ext = actionURL.extension } - svc, ok := srv.services[extensionID] + svc, ok := srv.services[ext] if !ok { return nil, ErrUnknownExtension } diff --git a/pkg/extension/service/extension.go b/pkg/extension/service/extension.go index 5b9263e083b50b9ea901ad674046819160b4876b..2fd57ee7c36d681e8d9768fa36a0961a953508c3 100644 --- a/pkg/extension/service/extension.go +++ b/pkg/extension/service/extension.go @@ -155,15 +155,15 @@ func (s *Extension) Uninstall(ctx context.Context, in *extension.UninstallReques } func (s *Extension) Action(ctx context.Context, in *extension.ActionRequest) (*extension.ActionResponse, error) { - extensionID := in.Extension - if extensionID == "" { + ext := in.Extension + if ext == "" { actionURL, err := extension.NewActionURL(in.Action) if err != nil { return nil, err } - extensionID = actionURL.Extension() + ext = actionURL.Extension() } - ok, err := extension.CheckInstalled(ctx, s.Content, in.SpaceId, in.EnvId, extensionID) + ok, err := extension.CheckInstalled(ctx, s.Content, in.SpaceId, in.EnvId, ext) if err != nil { return nil, errors.Wrap(err, "check extension installed") }