create devops job with admin ns name

Signed-off-by: runzexia <runzexia@yunify.com>
This commit is contained in:
runzexia
2020-03-23 16:13:49 +08:00
parent e06a1a8335
commit a48d7f5478
2 changed files with 24 additions and 21 deletions

View File

@@ -197,18 +197,7 @@ func (c *Controller) syncHandler(key string) error {
if !sliceutil.HasString(project.ObjectMeta.Finalizers, devopsv1alpha3.DevOpsProjectFinalizerName) {
copyProject.ObjectMeta.Finalizers = append(copyProject.ObjectMeta.Finalizers, devopsv1alpha3.DevOpsProjectFinalizerName)
}
// Check project exists, otherwise we will create it.
_, err := c.devopsClient.GetDevOpsProject(key)
if err != nil && devopsClient.GetDevOpsStatusCode(err) != http.StatusNotFound {
klog.Error(err, fmt.Sprintf("failed to get project %s ", key))
return err
} else {
_, err := c.devopsClient.CreateDevOpsProject(key)
if err != nil {
klog.Error(err, fmt.Sprintf("failed to get project %s ", key))
return err
}
}
if project.Status.AdminNamespace != "" {
ns, err := c.namespaceLister.Get(project.Status.AdminNamespace)
if err != nil && !errors.IsNotFound(err) {
@@ -244,6 +233,7 @@ func (c *Controller) syncHandler(key string) error {
return err
}
}
} else {
// list ns by devops project
namespaces, err := c.namespaceLister.List(
@@ -283,6 +273,7 @@ func (c *Controller) syncHandler(key string) error {
}
}
if !reflect.DeepEqual(copyProject, project) {
_, err := c.kubesphereClient.DevopsV1alpha3().DevOpsProjects().Update(copyProject)
if err != nil {
@@ -290,6 +281,18 @@ func (c *Controller) syncHandler(key string) error {
return err
}
}
// Check project exists, otherwise we will create it.
_, err := c.devopsClient.GetDevOpsProject(copyProject.Status.AdminNamespace)
if err != nil && devopsClient.GetDevOpsStatusCode(err) != http.StatusNotFound {
klog.Error(err, fmt.Sprintf("failed to get project %s ", key))
return err
} else {
_, err := c.devopsClient.CreateDevOpsProject(copyProject.Status.AdminNamespace)
if err != nil {
klog.Error(err, fmt.Sprintf("failed to get project %s ", key))
return err
}
}
} else {
// Finalizers processing logic

View File

@@ -301,8 +301,8 @@ func TestDoNothing(t *testing.T) {
f.devopsProjectLister = append(f.devopsProjectLister, project)
f.namespaceLister = append(f.namespaceLister, ns)
f.objects = append(f.objects, project)
f.initDevOpsProject = []string{project.Name}
f.expectDevOpsProject = []string{project.Name}
f.initDevOpsProject = []string{ns.Name}
f.expectDevOpsProject = []string{ns.Name}
f.run(getKey(project, t))
}
@@ -318,8 +318,8 @@ func TestUpdateProjectFinalizers(t *testing.T) {
f.namespaceLister = append(f.namespaceLister, ns)
f.objects = append(f.objects, project)
f.kubeobjects = append(f.kubeobjects, ns)
f.initDevOpsProject = []string{project.Name}
f.expectDevOpsProject = []string{project.Name}
f.initDevOpsProject = []string{ns.Name}
f.expectDevOpsProject = []string{ns.Name}
expectUpdateProject := project.DeepCopy()
expectUpdateProject.Finalizers = []string{devops.DevOpsProjectFinalizerName}
f.expectUpdateDevOpsProjectAction(expectUpdateProject)
@@ -337,8 +337,8 @@ func TestUpdateProjectStatus(t *testing.T) {
f.namespaceLister = append(f.namespaceLister, ns)
f.objects = append(f.objects, project)
f.kubeobjects = append(f.kubeobjects, ns)
f.initDevOpsProject = []string{project.Name}
f.expectDevOpsProject = []string{project.Name}
f.initDevOpsProject = []string{ns.Name}
f.expectDevOpsProject = []string{ns.Name}
expectUpdateProject := project.DeepCopy()
expectUpdateProject.Status.AdminNamespace = nsName
f.expectUpdateDevOpsProjectAction(expectUpdateProject)
@@ -356,8 +356,8 @@ func TestUpdateNsOwnerReference(t *testing.T) {
f.namespaceLister = append(f.namespaceLister, ns)
f.objects = append(f.objects, project)
f.kubeobjects = append(f.kubeobjects, ns)
f.initDevOpsProject = []string{project.Name}
f.expectDevOpsProject = []string{project.Name}
f.initDevOpsProject = []string{ns.Name}
f.expectDevOpsProject = []string{ns.Name}
expectUpdateNs := newNamespace(nsName, projectName, false, true)
f.expectUpdateNamespaceAction(expectUpdateNs)
@@ -370,7 +370,7 @@ func TestCreateDevOpsProjects(t *testing.T) {
ns := newNamespace("test-123", "test", true, true)
f.devopsProjectLister = append(f.devopsProjectLister, project)
f.objects = append(f.objects, project)
f.expectDevOpsProject = []string{project.Name}
f.expectDevOpsProject = []string{""}
// because generateName not work in fakeClient, so DevOpsProject would not be update
// f.expectUpdateDevOpsProjectAction(project)