mirror of
https://github.com/jenkinsci/kubernetes-operator.git
synced 2026-10-04 23:21:11 +02:00
#1 Split plugins in two groups:required by operator and required by user
This commit is contained in:
@@ -33,7 +33,7 @@ func TestConfiguration(t *testing.T) {
|
||||
|
||||
verifyJenkinsMasterPodAttributes(t, jenkins)
|
||||
client := verifyJenkinsAPIConnection(t, jenkins)
|
||||
verifyBasePlugins(t, client)
|
||||
verifyPlugins(t, client, jenkins)
|
||||
|
||||
// user
|
||||
waitForJenkinsUserConfigurationToComplete(t, jenkins)
|
||||
@@ -90,28 +90,48 @@ func verifyJenkinsMasterPodAttributes(t *testing.T, jenkins *v1alpha1.Jenkins) {
|
||||
t.Log("Jenkins pod attributes are valid")
|
||||
}
|
||||
|
||||
func verifyBasePlugins(t *testing.T, jenkinsClient *gojenkins.Jenkins) {
|
||||
func verifyPlugins(t *testing.T, jenkinsClient *gojenkins.Jenkins, jenkins *v1alpha1.Jenkins) {
|
||||
installedPlugins, err := jenkinsClient.GetPlugins(1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
for rootPluginName, p := range plugins.BasePluginsMap {
|
||||
rootPlugin, err := plugins.New(rootPluginName)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if found, ok := isPluginValid(installedPlugins, *rootPlugin); !ok {
|
||||
t.Fatalf("Invalid plugin '%s', actual '%+v'", rootPlugin, found)
|
||||
}
|
||||
for _, requiredPlugin := range p {
|
||||
if found, ok := isPluginValid(installedPlugins, requiredPlugin); !ok {
|
||||
t.Fatalf("Invalid plugin '%s', actual '%+v'", requiredPlugin, found)
|
||||
requiredPlugins := []map[string][]string{plugins.BasePlugins(), jenkins.Spec.Master.Plugins}
|
||||
for _, p := range requiredPlugins {
|
||||
for rootPluginName, dependentPlugins := range p {
|
||||
rootPlugin, err := plugins.New(rootPluginName)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if found, ok := isPluginValid(installedPlugins, *rootPlugin); !ok {
|
||||
t.Fatalf("Invalid plugin '%s', actual '%+v'", rootPlugin, found)
|
||||
}
|
||||
for _, pluginName := range dependentPlugins {
|
||||
plugin, err := plugins.New(pluginName)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if found, ok := isPluginValid(installedPlugins, *plugin); !ok {
|
||||
t.Fatalf("Invalid plugin '%s', actual '%+v'", rootPlugin, found)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
t.Log("Base plugins have been installed")
|
||||
t.Log("All plugins have been installed")
|
||||
}
|
||||
|
||||
func isPluginValid(plugins *gojenkins.Plugins, requiredPlugin plugins.Plugin) (*gojenkins.Plugin, bool) {
|
||||
p := plugins.Contains(requiredPlugin.Name)
|
||||
if p == nil {
|
||||
return p, false
|
||||
}
|
||||
|
||||
if !p.Active || !p.Enabled || p.Deleted {
|
||||
return p, false
|
||||
}
|
||||
|
||||
return p, requiredPlugin.Version == p.Version
|
||||
}
|
||||
|
||||
func verifyJenkinsSeedJobs(t *testing.T, client *gojenkins.Jenkins, jenkins *v1alpha1.Jenkins) {
|
||||
@@ -150,16 +170,3 @@ func verifyJenkinsSeedJobs(t *testing.T, client *gojenkins.Jenkins, jenkins *v1a
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func isPluginValid(plugins *gojenkins.Plugins, requiredPlugin plugins.Plugin) (*gojenkins.Plugin, bool) {
|
||||
p := plugins.Contains(requiredPlugin.Name)
|
||||
if p == nil {
|
||||
return p, false
|
||||
}
|
||||
|
||||
if !p.Active || !p.Enabled || p.Deleted {
|
||||
return p, false
|
||||
}
|
||||
|
||||
return p, requiredPlugin.Version == p.Version
|
||||
}
|
||||
|
||||
@@ -85,6 +85,10 @@ func createJenkinsCR(t *testing.T, namespace string) *v1alpha1.Jenkins {
|
||||
Master: v1alpha1.JenkinsMaster{
|
||||
Image: "jenkins/jenkins",
|
||||
Annotations: map[string]string{"test": "label"},
|
||||
Plugins: map[string][]string{
|
||||
"audit-trail:2.4": {},
|
||||
"simple-theme-plugin:0.5.1": {},
|
||||
},
|
||||
},
|
||||
//TODO(bantoniak) add seed job with private key
|
||||
SeedJobs: []v1alpha1.SeedJob{
|
||||
|
||||
Reference in New Issue
Block a user