From 899ab31fff9b34bc125faf75b79a89e390deb2cf Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Fri, 1 Sep 2017 09:00:27 -0400 Subject: Implement experimental REST API endpoints for plugins (#7279) * Implement experimental REST API endpoints for plugins * Updates per feedback and rebase * Update tests * Further updates * Update extraction of plugins * Use OS temp dir for plugins instead of search path * Fail extraction on paths that attempt to traverse upward * Update pluginenv ActivePlugins() --- plugin/rpcplugin/supervisor.go | 3 ++- plugin/rpcplugin/supervisor_test.go | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'plugin/rpcplugin') diff --git a/plugin/rpcplugin/supervisor.go b/plugin/rpcplugin/supervisor.go index 9316d7186..7abcca0fc 100644 --- a/plugin/rpcplugin/supervisor.go +++ b/plugin/rpcplugin/supervisor.go @@ -7,6 +7,7 @@ import ( "sync/atomic" "time" + "github.com/mattermost/platform/model" "github.com/mattermost/platform/plugin" ) @@ -116,7 +117,7 @@ func (s *Supervisor) runPlugin(ctx context.Context, start chan<- error) error { return nil } -func SupervisorProvider(bundle *plugin.BundleInfo) (plugin.Supervisor, error) { +func SupervisorProvider(bundle *model.BundleInfo) (plugin.Supervisor, error) { if bundle.Manifest == nil { return nil, fmt.Errorf("no manifest available") } else if bundle.Manifest.Backend == nil || bundle.Manifest.Backend.Executable == "" { diff --git a/plugin/rpcplugin/supervisor_test.go b/plugin/rpcplugin/supervisor_test.go index c43fd3dc9..014d0dd39 100644 --- a/plugin/rpcplugin/supervisor_test.go +++ b/plugin/rpcplugin/supervisor_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/mattermost/platform/plugin" + "github.com/mattermost/platform/model" ) func TestSupervisor(t *testing.T) { @@ -35,7 +35,7 @@ func TestSupervisor(t *testing.T) { ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "backend.exe"}}`), 0600) - bundle := plugin.BundleInfoForPath(dir) + bundle := model.BundleInfoForPath(dir) supervisor, err := SupervisorProvider(bundle) require.NoError(t, err) require.NoError(t, supervisor.Start()) @@ -61,7 +61,7 @@ func TestSupervisor_StartTimeout(t *testing.T) { ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "backend.exe"}}`), 0600) - bundle := plugin.BundleInfoForPath(dir) + bundle := model.BundleInfoForPath(dir) supervisor, err := SupervisorProvider(bundle) require.NoError(t, err) require.Error(t, supervisor.Start()) @@ -98,7 +98,7 @@ func TestSupervisor_PluginCrash(t *testing.T) { ioutil.WriteFile(filepath.Join(dir, "plugin.json"), []byte(`{"id": "foo", "backend": {"executable": "backend.exe"}}`), 0600) - bundle := plugin.BundleInfoForPath(dir) + bundle := model.BundleInfoForPath(dir) supervisor, err := SupervisorProvider(bundle) require.NoError(t, err) require.NoError(t, supervisor.Start()) -- cgit v1.2.3-1-g7c22