[MM-37664] Remove deprecated Backend field from plugin manifest (#18064)

Этот коммит содержится в:
Ben Schumacher
2021-08-13 19:41:32 +02:00
коммит произвёл GitHub
родитель d447d9b64a
Коммит cbba2f1cca
8 изменённых файлов: 19 добавлений и 87 удалений

Просмотреть файл

@@ -559,7 +559,7 @@ func TestSubmitInteractiveDialog(t *testing.T) {
func main() {
plugin.ClientMain(&MyPlugin{})
}
`, `{"id": "myplugin", "backend": {"executable": "backend.exe"}}`, "myplugin", th.App, th.Context)
`, `{"id": "myplugin", "server": {"executable": "backend.exe"}}`, "myplugin", th.App, th.Context)
hooks, err2 := th.App.GetPluginsEnvironment().HooksForPlugin("myplugin")
require.NoError(t, err2)
@@ -841,7 +841,7 @@ func TestPostActionRelativePluginURL(t *testing.T) {
func main() {
plugin.ClientMain(&MyPlugin{})
}
`, `{"id": "myplugin", "backend": {"executable": "backend.exe"}}`, "myplugin", th.App, th.Context)
`, `{"id": "myplugin", "server": {"executable": "backend.exe"}}`, "myplugin", th.App, th.Context)
hooks, err2 := th.App.GetPluginsEnvironment().HooksForPlugin("myplugin")
require.NoError(t, err2)
@@ -1060,7 +1060,7 @@ func TestDoPluginRequest(t *testing.T) {
func main() {
plugin.ClientMain(&MyPlugin{})
}
`, `{"id": "myplugin", "backend": {"executable": "backend.exe"}}`, "myplugin", th.App, th.Context)
`, `{"id": "myplugin", "server": {"executable": "backend.exe"}}`, "myplugin", th.App, th.Context)
hooks, err2 := th.App.GetPluginsEnvironment().HooksForPlugin("myplugin")
require.NoError(t, err2)

Просмотреть файл

@@ -691,7 +691,7 @@ func TestPluginAPILoadPluginConfiguration(t *testing.T) {
require.True(t, found, "Cannot find tests folder")
fullPath := path.Join(testFolder, "manual.test_load_configuration_plugin", "main.go")
err = pluginAPIHookTest(t, th, fullPath, "testloadpluginconfig", `{"id": "testloadpluginconfig", "backend": {"executable": "backend.exe"}, "settings_schema": {
err = pluginAPIHookTest(t, th, fullPath, "testloadpluginconfig", `{"id": "testloadpluginconfig", "server": {"executable": "backend.exe"}, "settings_schema": {
"settings": [
{
"key": "MyStringSetting",
@@ -950,7 +950,7 @@ func TestInstallPlugin(t *testing.T) {
}
`,
`{"id": "testinstallplugin", "backend": {"executable": "backend.exe"}, "settings_schema": {
`{"id": "testinstallplugin", "server": {"executable": "backend.exe"}, "settings_schema": {
"settings": [
{
"key": "DownloadURL",
@@ -1068,7 +1068,7 @@ func pluginAPIHookTest(t *testing.T, th *TestHelper, fileName string, id string,
}
th.App.srv.sqlStore = th.GetSqlStore()
setupPluginApiTest(t, code,
fmt.Sprintf(`{"id": "%v", "backend": {"executable": "backend.exe"}, "settings_schema": %v}`, id, schema),
fmt.Sprintf(`{"id": "%v", "server": {"executable": "backend.exe"}, "settings_schema": %v}`, id, schema),
id, th.App, th.Context)
hooks, err := th.App.GetPluginsEnvironment().HooksForPlugin(id)
require.NoError(t, err)
@@ -1511,8 +1511,8 @@ func TestInterpluginPluginHTTP(t *testing.T) {
`,
},
[]string{
`{"id": "testplugininterserver", "backend": {"executable": "backend.exe"}}`,
`{"id": "testplugininterclient", "backend": {"executable": "backend.exe"}}`,
`{"id": "testplugininterserver", "server": {"executable": "backend.exe"}}`,
`{"id": "testplugininterclient", "server": {"executable": "backend.exe"}}`,
},
[]string{
"testplugininterserver",
@@ -1573,7 +1573,7 @@ func TestApiMetrics(t *testing.T) {
}
`
utils.CompileGo(t, code, backend)
ioutil.WriteFile(filepath.Join(pluginDir, pluginID, "plugin.json"), []byte(`{"id": "`+pluginID+`", "backend": {"executable": "backend.exe"}}`), 0600)
ioutil.WriteFile(filepath.Join(pluginDir, pluginID, "plugin.json"), []byte(`{"id": "`+pluginID+`", "server": {"executable": "backend.exe"}}`), 0600)
// Don't care about these mocks
metricsMock.On("ObservePluginHookDuration", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return()

Просмотреть файл

@@ -45,7 +45,7 @@ func SetAppEnvironmentWithPlugins(t *testing.T, pluginCode []string, app *App, a
backend := filepath.Join(pluginDir, pluginID, "backend.exe")
utils.CompileGo(t, code, backend)
ioutil.WriteFile(filepath.Join(pluginDir, pluginID, "plugin.json"), []byte(`{"id": "`+pluginID+`", "backend": {"executable": "backend.exe"}}`), 0600)
ioutil.WriteFile(filepath.Join(pluginDir, pluginID, "plugin.json"), []byte(`{"id": "`+pluginID+`", "server": {"executable": "backend.exe"}}`), 0600)
_, _, activationErr := env.Activate(pluginID)
pluginIDs = append(pluginIDs, pluginID)
activationErrors = append(activationErrors, activationErr)
@@ -1083,7 +1083,7 @@ func TestHookMetrics(t *testing.T) {
}
`
utils.CompileGo(t, code, backend)
ioutil.WriteFile(filepath.Join(pluginDir, pluginID, "plugin.json"), []byte(`{"id": "`+pluginID+`", "backend": {"executable": "backend.exe"}}`), 0600)
ioutil.WriteFile(filepath.Join(pluginDir, pluginID, "plugin.json"), []byte(`{"id": "`+pluginID+`", "server": {"executable": "backend.exe"}}`), 0600)
// Setup mocks before activating
metricsMock.On("ObservePluginHookDuration", pluginID, "Implemented", true, mock.Anything).Return()

Просмотреть файл

@@ -78,7 +78,7 @@ func TestCreatePostDeduplicate(t *testing.T) {
func main() {
plugin.ClientMain(&MyPlugin{})
}
`, `{"id": "testrejectfirstpost", "backend": {"executable": "backend.exe"}}`, "testrejectfirstpost", th.App, th.Context)
`, `{"id": "testrejectfirstpost", "server": {"executable": "backend.exe"}}`, "testrejectfirstpost", th.App, th.Context)
pendingPostId := model.NewId()
post, err := th.App.CreatePostAsUser(th.Context, &model.Post{
@@ -128,7 +128,7 @@ func TestCreatePostDeduplicate(t *testing.T) {
func main() {
plugin.ClientMain(&MyPlugin{})
}
`, `{"id": "testdelayfirstpost", "backend": {"executable": "backend.exe"}}`, "testdelayfirstpost", th.App, th.Context)
`, `{"id": "testdelayfirstpost", "server": {"executable": "backend.exe"}}`, "testdelayfirstpost", th.App, th.Context)
var post *model.Post
pendingPostId := model.NewId()

Просмотреть файл

@@ -176,9 +176,6 @@ type Manifest struct {
// Server defines the server-side portion of your plugin.
Server *ManifestServer `json:"server,omitempty" yaml:"server,omitempty"`
// Backend is a deprecated flag for defining the server-side portion of your plugin. Going forward, use Server instead.
Backend *ManifestServer `json:"backend,omitempty" yaml:"backend,omitempty"`
// If your plugin extends the web app, you'll need to define webapp.
Webapp *ManifestWebapp `json:"webapp,omitempty" yaml:"webapp,omitempty"`
@@ -278,11 +275,6 @@ func (m *Manifest) ClientManifest() *Manifest {
func (m *Manifest) GetExecutableForRuntime(goOs, goArch string) string {
server := m.Server
// Support the deprecated backend parameter.
if server == nil {
server = m.Backend
}
if server == nil {
return ""
}
@@ -301,7 +293,7 @@ func (m *Manifest) GetExecutableForRuntime(goOs, goArch string) string {
}
func (m *Manifest) HasServer() bool {
return m.Server != nil || m.Backend != nil
return m.Server != nil
}
func (m *Manifest) HasWebapp() bool {

Просмотреть файл

@@ -707,44 +707,6 @@ func TestManifestGetExecutableForRuntime(t *testing.T) {
"amd64",
"path/to/executable",
},
{
"deprecated backend field, ignored since server present",
&Manifest{
Server: &ManifestServer{
Executables: map[string]string{
"linux-amd64": "linux-amd64/path/to/executable",
"darwin-amd64": "darwin-amd64/path/to/executable",
"windows-amd64": "windows-amd64/path/to/executable",
"linux-arm64": "linux-arm64/path/to/executable",
},
},
Backend: &ManifestServer{
Executables: map[string]string{
"linux-amd64": "linux-amd64/path/to/executable",
"darwin-amd64": "darwin-amd64/path/to/executable",
"windows-amd64": "windows-amd64/path/to/executable",
},
},
},
"linux",
"amd64",
"linux-amd64/path/to/executable",
},
{
"deprecated backend field used, since no server present",
&Manifest{
Backend: &ManifestServer{
Executables: map[string]string{
"linux-amd64": "linux-amd64/path/to/executable",
"darwin-amd64": "darwin-amd64/path/to/executable",
"windows-amd64": "windows-amd64/path/to/executable",
},
},
},
"linux",
"amd64",
"linux-amd64/path/to/executable",
},
}
for _, testCase := range testCases {
@@ -798,28 +760,6 @@ func TestManifestHasServer(t *testing.T) {
},
true,
},
{
"single executable defined via deprecated backend",
&Manifest{
Backend: &ManifestServer{
Executable: "path/to/executable",
},
},
true,
},
{
"multiple executables defined via deprecated backend",
&Manifest{
Backend: &ManifestServer{
Executables: map[string]string{
"linux-amd64": "linux-amd64/path/to/executable",
"darwin-amd64": "darwin-amd64/path/to/executable",
"windows-amd64": "windows-amd64/path/to/executable",
},
},
},
true,
},
}
for _, testCase := range testCases {

Просмотреть файл

@@ -48,7 +48,7 @@ func testPluginHealthCheckSuccess(t *testing.T) {
}
`, backend)
err = ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "backend.exe"}}`), 0600)
err = ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "server": {"executable": "backend.exe"}}`), 0600)
require.NoError(t, err)
bundle := model.BundleInfoForPath(dir)
@@ -95,7 +95,7 @@ func testPluginHealthCheckPanic(t *testing.T) {
}
`, backend)
err = ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "backend.exe"}}`), 0600)
err = ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "server": {"executable": "backend.exe"}}`), 0600)
require.NoError(t, err)
bundle := model.BundleInfoForPath(dir)

Просмотреть файл

@@ -32,7 +32,7 @@ func testSupervisorInvalidExecutablePath(t *testing.T) {
require.NoError(t, err)
defer os.RemoveAll(dir)
ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "/foo/../../backend.exe"}}`), 0600)
ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "server": {"executable": "/foo/../../backend.exe"}}`), 0600)
bundle := model.BundleInfoForPath(dir)
log := mlog.NewLogger(&mlog.LoggerConfiguration{
@@ -51,7 +51,7 @@ func testSupervisorNonExistentExecutablePath(t *testing.T) {
require.NoError(t, err)
defer os.RemoveAll(dir)
ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "thisfileshouldnotexist"}}`), 0600)
ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "server": {"executable": "thisfileshouldnotexist"}}`), 0600)
bundle := model.BundleInfoForPath(dir)
log := mlog.NewLogger(&mlog.LoggerConfiguration{
@@ -81,7 +81,7 @@ func testSupervisorStartTimeout(t *testing.T) {
}
`, backend)
ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "backend.exe"}}`), 0600)
ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "server": {"executable": "backend.exe"}}`), 0600)
bundle := model.BundleInfoForPath(dir)
log := mlog.NewLogger(&mlog.LoggerConfiguration{