未验证 提交 a48d7f54 编写于 作者: R runzexia

create devops job with admin ns name

Signed-off-by: Nrunzexia <runzexia@yunify.com>
上级 e06a1a83
......@@ -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
......
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册