diff --git a/pkg/apiserver/event/sync/convert.go b/pkg/apiserver/event/sync/convert.go index 47cbdb27b..b921c2deb 100644 --- a/pkg/apiserver/event/sync/convert.go +++ b/pkg/apiserver/event/sync/convert.go @@ -190,7 +190,7 @@ func (c *CR2UX) generateEnv(ctx context.Context, defaultProject string, envNames env.Targets = append(env.Targets, name) } } - return env, "", nil + return env, env.Project, nil } // generate new environment diff --git a/pkg/apiserver/event/sync/cr2ux_test.go b/pkg/apiserver/event/sync/cr2ux_test.go index c2e8365ca..a0b0c8804 100644 --- a/pkg/apiserver/event/sync/cr2ux_test.go +++ b/pkg/apiserver/event/sync/cr2ux_test.go @@ -217,6 +217,47 @@ var _ = Describe("Test CR convert to ux", func() { Expect(count).Should(Equal(int64(2))) }) + It("Test to sync the project which existed env belongs", func() { + dbNamespace := "update-app-db-ns1-test" + ds, err := NewDatastore(datastore.Config{Type: "kubeapi", Database: dbNamespace}) + Expect(err).Should(BeNil()) + + cr2ux := newCR2UX(ds) + + projectName := "project-test" + + _, err = cr2ux.projectService.CreateProject(context.TODO(), v1.CreateProjectRequest{ + Name: projectName, + Owner: "admin", + }) + Expect(err).Should(BeNil()) + + _, err = cr2ux.targetService.CreateTarget(context.TODO(), v1.CreateTargetRequest{ + Name: "target-test1", + Project: projectName, + Cluster: &v1.ClusterTarget{ + ClusterName: "local", + Namespace: "target-test1", + }, + }) + Expect(err).Should(BeNil()) + _, err = cr2ux.envService.CreateEnv(context.TODO(), v1.CreateEnvRequest{ + Name: "env-test1", + Project: projectName, + Namespace: "env-test1", + Targets: []string{"target-test1"}, + }) + Expect(err).Should(BeNil()) + + app5 := &v1beta1.Application{} + Expect(common2.ReadYamlToObject("testdata/test-app5.yaml", app5)).Should(BeNil()) + app5.Namespace = "env-test1" + Expect(cr2ux.AddOrUpdate(context.Background(), app5)).Should(BeNil()) + + app, err := cr2ux.applicationService.GetApplication(context.TODO(), app5.Name) + Expect(err).Should(BeNil()) + Expect(app.Project).Should(Equal("project-test")) + }) }) func newCR2UX(ds datastore.DataStore) *CR2UX { diff --git a/pkg/apiserver/event/sync/testdata/test-app5.yaml b/pkg/apiserver/event/sync/testdata/test-app5.yaml new file mode 100644 index 000000000..0fc7b94f8 --- /dev/null +++ b/pkg/apiserver/event/sync/testdata/test-app5.yaml @@ -0,0 +1,16 @@ +apiVersion: core.oam.dev/v1beta1 +kind: Application +metadata: + name: example-sync-project +spec: + components: + - name: example-exist-env + type: webservice + properties: + image: wordpress + traits: + - type: gateway + properties: + domain: testsvc.example.com + http: + "/": 8000 \ No newline at end of file