[MM-29361] Send cloud flag with Marketplace requests (#15913)

Этот коммит содержится в:
Ben Schumacher
2020-10-26 21:57:19 +01:00
коммит произвёл GitHub
родитель 3697f92045
Коммит 76f1bfb941
3 изменённых файлов: 57 добавлений и 1 удалений

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

@@ -633,7 +633,57 @@ func TestGetMarketplacePlugins(t *testing.T) {
plugins, resp := client.GetMarketplacePlugins(&model.MarketplacePluginFilter{}) plugins, resp := client.GetMarketplacePlugins(&model.MarketplacePluginFilter{})
CheckNoError(t, resp) CheckNoError(t, resp)
require.Empty(t, plugins) require.Empty(t, plugins)
}, "verify EnterprisePlugins is false for E20") }, "verify EnterprisePlugins is true for E20")
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
testServer := httptest.NewServer(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
cloud, ok := req.URL.Query()["cloud"]
require.True(t, ok)
require.Len(t, cloud, 1)
require.Equal(t, "false", cloud[0])
res.WriteHeader(http.StatusOK)
json, err := json.Marshal([]*model.MarketplacePlugin{})
require.NoError(t, err)
res.Write(json)
}))
defer func() { testServer.Close() }()
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.PluginSettings.EnableMarketplace = true
*cfg.PluginSettings.MarketplaceUrl = testServer.URL
})
plugins, resp := client.GetMarketplacePlugins(&model.MarketplacePluginFilter{})
CheckNoError(t, resp)
require.Empty(t, plugins)
}, "verify EnterprisePlugins is false if there is no license")
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
testServer := httptest.NewServer(http.HandlerFunc(func(res http.ResponseWriter, req *http.Request) {
cloud, ok := req.URL.Query()["cloud"]
require.True(t, ok)
require.Len(t, cloud, 1)
require.Equal(t, "true", cloud[0])
res.WriteHeader(http.StatusOK)
json, err := json.Marshal([]*model.MarketplacePlugin{})
require.NoError(t, err)
res.Write(json)
}))
defer func() { testServer.Close() }()
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.PluginSettings.EnableMarketplace = true
*cfg.PluginSettings.MarketplaceUrl = testServer.URL
})
th.App.Srv().SetLicense(model.NewTestLicense("cloud"))
plugins, resp := client.GetMarketplacePlugins(&model.MarketplacePluginFilter{})
CheckNoError(t, resp)
require.Empty(t, plugins)
}, "verify Cloud is true for cloud license")
} }
func TestGetInstalledMarketplacePlugins(t *testing.T) { func TestGetInstalledMarketplacePlugins(t *testing.T) {

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

@@ -668,6 +668,10 @@ func (a *App) getBaseMarketplaceFilter() *model.MarketplacePluginFilter {
filter.EnterprisePlugins = true filter.EnterprisePlugins = true
} }
if license != nil && *license.Features.Cloud {
filter.Cloud = true
}
if model.BuildEnterpriseReady == "true" { if model.BuildEnterpriseReady == "true" {
filter.BuildEnterpriseReady = true filter.BuildEnterpriseReady = true
} }

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

@@ -80,6 +80,7 @@ type MarketplacePluginFilter struct {
ServerVersion string ServerVersion string
BuildEnterpriseReady bool BuildEnterpriseReady bool
EnterprisePlugins bool EnterprisePlugins bool
Cloud bool
LocalOnly bool LocalOnly bool
Platform string Platform string
} }
@@ -95,6 +96,7 @@ func (filter *MarketplacePluginFilter) ApplyToURL(u *url.URL) {
q.Add("server_version", filter.ServerVersion) q.Add("server_version", filter.ServerVersion)
q.Add("build_enterprise_ready", strconv.FormatBool(filter.BuildEnterpriseReady)) q.Add("build_enterprise_ready", strconv.FormatBool(filter.BuildEnterpriseReady))
q.Add("enterprise_plugins", strconv.FormatBool(filter.EnterprisePlugins)) q.Add("enterprise_plugins", strconv.FormatBool(filter.EnterprisePlugins))
q.Add("cloud", strconv.FormatBool(filter.Cloud))
q.Add("local_only", strconv.FormatBool(filter.LocalOnly)) q.Add("local_only", strconv.FormatBool(filter.LocalOnly))
q.Add("platform", filter.Platform) q.Add("platform", filter.Platform)
u.RawQuery = q.Encode() u.RawQuery = q.Encode()