Remove the validation of plugin version against a regex (#729)
This commit is contained in:
parent
4fde1df8d8
commit
13f871b1e4
|
|
@ -53,15 +53,6 @@ func TestValidatePlugins(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, got, []string{"invalid plugin name 'INVALID?:0.0.1', must follow pattern '" + plugins.NamePattern.String() + "'"})
|
assert.Equal(t, got, []string{"invalid plugin name 'INVALID?:0.0.1', must follow pattern '" + plugins.NamePattern.String() + "'"})
|
||||||
})
|
})
|
||||||
t.Run("invalid user plugin version", func(t *testing.T) {
|
|
||||||
var requiredBasePlugins []plugins.Plugin
|
|
||||||
var basePlugins []v1alpha2.Plugin
|
|
||||||
userPlugins := []v1alpha2.Plugin{{Name: "simple-plugin", Version: "invalid!"}}
|
|
||||||
|
|
||||||
got := baseReconcileLoop.validatePlugins(requiredBasePlugins, basePlugins, userPlugins)
|
|
||||||
|
|
||||||
assert.Equal(t, got, []string{"invalid plugin version 'simple-plugin:invalid!', must follow pattern '" + plugins.VersionPattern.String() + "'"})
|
|
||||||
})
|
|
||||||
t.Run("valid base plugin", func(t *testing.T) {
|
t.Run("valid base plugin", func(t *testing.T) {
|
||||||
var requiredBasePlugins []plugins.Plugin
|
var requiredBasePlugins []plugins.Plugin
|
||||||
basePlugins := []v1alpha2.Plugin{{Name: "simple-plugin", Version: "0.0.1"}}
|
basePlugins := []v1alpha2.Plugin{{Name: "simple-plugin", Version: "0.0.1"}}
|
||||||
|
|
@ -80,15 +71,6 @@ func TestValidatePlugins(t *testing.T) {
|
||||||
|
|
||||||
assert.Equal(t, got, []string{"invalid plugin name 'INVALID?:0.0.1', must follow pattern '" + plugins.NamePattern.String() + "'"})
|
assert.Equal(t, got, []string{"invalid plugin name 'INVALID?:0.0.1', must follow pattern '" + plugins.NamePattern.String() + "'"})
|
||||||
})
|
})
|
||||||
t.Run("invalid base plugin version", func(t *testing.T) {
|
|
||||||
var requiredBasePlugins []plugins.Plugin
|
|
||||||
basePlugins := []v1alpha2.Plugin{{Name: "simple-plugin", Version: "invalid!"}}
|
|
||||||
var userPlugins []v1alpha2.Plugin
|
|
||||||
|
|
||||||
got := baseReconcileLoop.validatePlugins(requiredBasePlugins, basePlugins, userPlugins)
|
|
||||||
|
|
||||||
assert.Equal(t, got, []string{"invalid plugin version 'simple-plugin:invalid!', must follow pattern '" + plugins.VersionPattern.String() + "'"})
|
|
||||||
})
|
|
||||||
t.Run("valid user and base plugin version", func(t *testing.T) {
|
t.Run("valid user and base plugin version", func(t *testing.T) {
|
||||||
var requiredBasePlugins []plugins.Plugin
|
var requiredBasePlugins []plugins.Plugin
|
||||||
basePlugins := []v1alpha2.Plugin{{Name: "simple-plugin", Version: "0.0.1"}}
|
basePlugins := []v1alpha2.Plugin{{Name: "simple-plugin", Version: "0.0.1"}}
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,6 @@ func (p Plugin) String() string {
|
||||||
var (
|
var (
|
||||||
// NamePattern is the plugin name regex pattern
|
// NamePattern is the plugin name regex pattern
|
||||||
NamePattern = regexp.MustCompile(`^[0-9a-zA-Z\-_]+$`)
|
NamePattern = regexp.MustCompile(`^[0-9a-zA-Z\-_]+$`)
|
||||||
// VersionPattern is the plugin version regex pattern
|
|
||||||
VersionPattern = regexp.MustCompile(`^[0-9a-zA-Z\-_+\\.]+$`)
|
|
||||||
// DownloadURLPattern is the plugin download url regex pattern
|
// DownloadURLPattern is the plugin download url regex pattern
|
||||||
DownloadURLPattern = regexp.MustCompile(`https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)`)
|
DownloadURLPattern = regexp.MustCompile(`https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)`)
|
||||||
)
|
)
|
||||||
|
|
@ -65,9 +63,6 @@ func validatePlugin(name, version, downloadURL string) error {
|
||||||
if ok := NamePattern.MatchString(name); !ok {
|
if ok := NamePattern.MatchString(name); !ok {
|
||||||
return errors.Errorf("invalid plugin name '%s:%s', must follow pattern '%s'", name, version, NamePattern.String())
|
return errors.Errorf("invalid plugin name '%s:%s', must follow pattern '%s'", name, version, NamePattern.String())
|
||||||
}
|
}
|
||||||
if ok := VersionPattern.MatchString(version); !ok {
|
|
||||||
return errors.Errorf("invalid plugin version '%s:%s', must follow pattern '%s'", name, version, VersionPattern.String())
|
|
||||||
}
|
|
||||||
if len(downloadURL) > 0 {
|
if len(downloadURL) > 0 {
|
||||||
if ok := DownloadURLPattern.MatchString(downloadURL); !ok {
|
if ok := DownloadURLPattern.MatchString(downloadURL); !ok {
|
||||||
return errors.Errorf("invalid download URL '%s' for plugin name %s:%s, must follow pattern '%s'", downloadURL, name, version, DownloadURLPattern.String())
|
return errors.Errorf("invalid download URL '%s' for plugin name %s:%s, must follow pattern '%s'", downloadURL, name, version, DownloadURLPattern.String())
|
||||||
|
|
|
||||||
|
|
@ -40,10 +40,6 @@ func TestValidatePlugin(t *testing.T) {
|
||||||
got := validatePlugin(validPluginName, "1074.v60e6c29b_b_44b_", "")
|
got := validatePlugin(validPluginName, "1074.v60e6c29b_b_44b_", "")
|
||||||
assert.NoError(t, got)
|
assert.NoError(t, got)
|
||||||
})
|
})
|
||||||
t.Run("invalid version !", func(t *testing.T) {
|
|
||||||
got := validatePlugin(validPluginName, "0.5.1!", "")
|
|
||||||
assert.Error(t, got)
|
|
||||||
})
|
|
||||||
t.Run("name 01234567890-abcdefghijklmnoprstuwxz_ABCDEFGHIJKLMNOPQRSTUVWXYZ", func(t *testing.T) {
|
t.Run("name 01234567890-abcdefghijklmnoprstuwxz_ABCDEFGHIJKLMNOPQRSTUVWXYZ", func(t *testing.T) {
|
||||||
got := validatePlugin("01234567890-abcdefghijklmnoprstuwxz_ABCDEFGHIJKLMNOPQRSTUVWXYZ", validPluginVersion, "")
|
got := validatePlugin("01234567890-abcdefghijklmnoprstuwxz_ABCDEFGHIJKLMNOPQRSTUVWXYZ", validPluginVersion, "")
|
||||||
assert.NoError(t, got)
|
assert.NoError(t, got)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue