Chore: Ensure BuildVersion is set when using CDN (#79169)

This commit is contained in:
Todd Treece
2023-12-06 15:27:08 -05:00
committed by GitHub
parent c4c9bfaf2e
commit ea36336c0a
3 changed files with 51 additions and 24 deletions
+9 -8
View File
@@ -1988,16 +1988,17 @@ func (cfg *Cfg) readServerSettings(iniFile *ini.File) error {
}
// GetContentDeliveryURL returns full content delivery URL with /<edition>/<version> added to URL
func (cfg *Cfg) GetContentDeliveryURL(prefix string) string {
if cfg.CDNRootURL != nil {
url := *cfg.CDNRootURL
preReleaseFolder := ""
url.Path = path.Join(url.Path, prefix, preReleaseFolder, cfg.BuildVersion)
return url.String() + "/"
func (cfg *Cfg) GetContentDeliveryURL(prefix string) (string, error) {
if cfg.CDNRootURL == nil {
return "", nil
}
if cfg.BuildVersion == "" {
return "", errors.New("BuildVersion is not set")
}
url := *cfg.CDNRootURL
return ""
url.Path = path.Join(url.Path, prefix, cfg.BuildVersion)
return url.String() + "/", nil
}
func (cfg *Cfg) readDataSourcesSettings() {
+37 -15
View File
@@ -384,19 +384,33 @@ func TestAuthDurationSettings(t *testing.T) {
}
func TestGetCDNPath(t *testing.T) {
var err error
cfg := NewCfg()
cfg.BuildVersion = "v7.5.0-11124"
cfg.CDNRootURL, err = url.Parse("http://cdn.grafana.com")
require.NoError(t, err)
t.Run("should return CDN url as expected", func(t *testing.T) {
var (
err error
actual string
)
cfg := NewCfg()
cfg.BuildVersion = "v7.5.0-11124"
cfg.CDNRootURL, err = url.Parse("http://cdn.grafana.com")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/grafana-oss/v7.5.0-11124/", cfg.GetContentDeliveryURL("grafana-oss"))
require.Equal(t, "http://cdn.grafana.com/grafana/v7.5.0-11124/", cfg.GetContentDeliveryURL("grafana"))
}
actual, err = cfg.GetContentDeliveryURL("grafana-oss")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/grafana-oss/v7.5.0-11124/", actual)
actual, err = cfg.GetContentDeliveryURL("grafana")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/grafana/v7.5.0-11124/", actual)
})
func TestGetContentDeliveryURLWhenNoCDNRootURLIsSet(t *testing.T) {
cfg := NewCfg()
require.Equal(t, "", cfg.GetContentDeliveryURL("grafana-oss"))
t.Run("should error if BuildVersion is not set", func(t *testing.T) {
var err error
cfg := NewCfg()
cfg.CDNRootURL, err = url.Parse("http://cdn.grafana.com")
require.NoError(t, err)
_, err = cfg.GetContentDeliveryURL("grafana")
require.Error(t, err)
})
}
func TestGetCDNPathWithPreReleaseVersionAndSubPath(t *testing.T) {
@@ -405,8 +419,12 @@ func TestGetCDNPathWithPreReleaseVersionAndSubPath(t *testing.T) {
cfg.BuildVersion = "v7.5.0-11124pre"
cfg.CDNRootURL, err = url.Parse("http://cdn.grafana.com/sub")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/sub/grafana-oss/v7.5.0-11124pre/", cfg.GetContentDeliveryURL("grafana-oss"))
require.Equal(t, "http://cdn.grafana.com/sub/grafana/v7.5.0-11124pre/", cfg.GetContentDeliveryURL("grafana"))
actual, err := cfg.GetContentDeliveryURL("grafana-oss")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/sub/grafana-oss/v7.5.0-11124pre/", actual)
actual, err = cfg.GetContentDeliveryURL("grafana")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/sub/grafana/v7.5.0-11124pre/", actual)
}
// Adding a case for this in case we switch to proper semver version strings
@@ -416,8 +434,12 @@ func TestGetCDNPathWithAlphaVersion(t *testing.T) {
cfg.BuildVersion = "v7.5.0-alpha.11124"
cfg.CDNRootURL, err = url.Parse("http://cdn.grafana.com")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/grafana-oss/v7.5.0-alpha.11124/", cfg.GetContentDeliveryURL("grafana-oss"))
require.Equal(t, "http://cdn.grafana.com/grafana/v7.5.0-alpha.11124/", cfg.GetContentDeliveryURL("grafana"))
actual, err := cfg.GetContentDeliveryURL("grafana-oss")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/grafana-oss/v7.5.0-alpha.11124/", actual)
actual, err = cfg.GetContentDeliveryURL("grafana")
require.NoError(t, err)
require.Equal(t, "http://cdn.grafana.com/grafana/v7.5.0-alpha.11124/", actual)
}
func TestAlertingEnabled(t *testing.T) {