ソースを参照

fixed namespace bug

Alexander Belanger 5 年 前
コミット
7cd0cdd41d
4 ファイル変更56 行追加2 行削除
  1. 1 1
      docker/.env
  2. 5 1
      internal/forms/chart.go
  3. 20 0
      internal/helm/agent_test.go
  4. 30 0
      server/api/chart_handler_test.go

+ 1 - 1
docker/.env

@@ -12,4 +12,4 @@ DB_PASS=porter
 DB_NAME=porter
 COOKIE_SECRETS=secret
 
-QUICK_START=true
+QUICK_START=false

+ 5 - 1
internal/forms/chart.go

@@ -53,7 +53,11 @@ type ListChartForm struct {
 // url.Values (the parsed query params). It calls the underlying
 // PopulateHelmOptionsFromQueryParams
 func (lcf *ListChartForm) PopulateListFromQueryParams(vals url.Values) {
-	lcf.PopulateHelmOptionsFromQueryParams(vals)
+	lcf.ChartForm.PopulateHelmOptionsFromQueryParams(vals)
+
+	if namespace, ok := vals["namespace"]; ok && len(namespace) == 1 {
+		lcf.ListFilter.Namespace = namespace[0]
+	}
 
 	if limit, ok := vals["limit"]; ok && len(limit) == 1 {
 		if limitInt, err := strconv.ParseInt(limit[0], 10, 64); err == nil {

+ 20 - 0
internal/helm/agent_test.go

@@ -129,6 +129,26 @@ var listReleaseTests = []listReleaseTest{
 			releaseStub{"wordpress", "default", 1, "1.0.1", release.StatusDeployed},
 		},
 	},
+	listReleaseTest{
+		name:      "simple test only default namespace",
+		namespace: "",
+		filter: &helm.ListFilter{
+			Namespace:    "",
+			Limit:        20,
+			Skip:         0,
+			ByDate:       false,
+			StatusFilter: []string{"deployed"},
+		},
+		releases: []releaseStub{
+			releaseStub{"airwatch", "default", 1, "1.0.0", release.StatusDeployed},
+			releaseStub{"wordpress", "default", 1, "1.0.1", release.StatusDeployed},
+			releaseStub{"not-in-default-namespace", "other", 1, "1.0.2", release.StatusDeployed},
+		},
+		expRes: []releaseStub{
+			releaseStub{"airwatch", "default", 1, "1.0.0", release.StatusDeployed},
+			releaseStub{"wordpress", "default", 1, "1.0.1", release.StatusDeployed},
+		},
+	},
 	listReleaseTest{
 		name:      "simple test limit",
 		namespace: "",

+ 30 - 0
server/api/chart_handler_test.go

@@ -27,6 +27,7 @@ type releaseStub struct {
 
 type chartTest struct {
 	initializers []func(tester *tester)
+	namespace    string
 	msg          string
 	method       string
 	endpoint     string
@@ -47,6 +48,8 @@ func testChartRequests(t *testing.T, tests []*chartTest, canQuery bool) {
 			init(tester)
 		}
 
+		tester.app.TestAgents.HelmAgent.ActionConfig.Releases.Driver.(*driver.Memory).SetNamespace(c.namespace)
+
 		req, err := http.NewRequest(
 			c.method,
 			c.endpoint,
@@ -105,6 +108,33 @@ var listChartsTests = []*chartTest{
 			chartReleaseBodyValidator,
 		},
 	},
+	&chartTest{
+		initializers: []func(tester *tester){
+			initDefaultCharts,
+		},
+		msg:       "List charts",
+		method:    "GET",
+		namespace: "default",
+		endpoint: "/api/charts?" + url.Values{
+			"namespace":    []string{"default"},
+			"context":      []string{"context-test"},
+			"storage":      []string{"memory"},
+			"limit":        []string{"20"},
+			"skip":         []string{"0"},
+			"byDate":       []string{"false"},
+			"statusFilter": []string{"deployed"},
+		}.Encode(),
+		body:      "",
+		expStatus: http.StatusOK,
+		expBody: releaseStubsToChartJSON([]releaseStub{
+			sampleReleaseStubs[0],
+			sampleReleaseStubs[2],
+		}),
+		useCookie: true,
+		validators: []func(c *chartTest, tester *tester, t *testing.T){
+			chartReleaseBodyValidator,
+		},
+	},
 }
 
 func TestHandleListCharts(t *testing.T) {