From eaec9fba3e55af3f05cf1642bbd7b9ba1f716ff3 Mon Sep 17 00:00:00 2001
From: Jessica Yuen <im.jessicayuen@gmail.com>
Date: Wed, 31 Jan 2018 11:51:21 -0800
Subject: [PATCH] Move component param logic out of manager.go

Signed-off-by: Jessica Yuen <im.jessicayuen@gmail.com>
---
 metadata/component.go      | 60 +++++++++++++++++++++++++++++++++++++
 metadata/component_test.go | 18 +++++++++++
 metadata/manager.go        | 61 --------------------------------------
 metadata/manager_test.go   | 18 -----------
 4 files changed, 78 insertions(+), 79 deletions(-)

diff --git a/metadata/component.go b/metadata/component.go
index 7cbe06eb..709ee716 100644
--- a/metadata/component.go
+++ b/metadata/component.go
@@ -171,6 +171,38 @@ func (m *manager) DeleteComponent(name string) error {
 	return nil
 }
 
+func (m *manager) GetComponentParams(component string) (param.Params, error) {
+	text, err := afero.ReadFile(m.appFS, string(m.componentParamsPath))
+	if err != nil {
+		return nil, err
+	}
+
+	return param.GetComponentParams(component, string(text))
+}
+
+func (m *manager) GetAllComponentParams() (map[string]param.Params, error) {
+	text, err := afero.ReadFile(m.appFS, string(m.componentParamsPath))
+	if err != nil {
+		return nil, err
+	}
+
+	return param.GetAllComponentParams(string(text))
+}
+
+func (m *manager) SetComponentParams(component string, params param.Params) error {
+	text, err := afero.ReadFile(m.appFS, string(m.componentParamsPath))
+	if err != nil {
+		return err
+	}
+
+	jsonnet, err := param.SetComponentParams(component, string(text), params)
+	if err != nil {
+		return err
+	}
+
+	return afero.WriteFile(m.appFS, string(m.componentParamsPath), []byte(jsonnet), defaultFilePermissions)
+}
+
 func (m *manager) findComponentPath(name string) (string, error) {
 	componentPaths, err := m.ComponentPaths()
 	if err != nil {
@@ -198,3 +230,31 @@ func (m *manager) findComponentPath(name string) (string, error) {
 
 	return componentPath, nil
 }
+
+func (m *manager) writeComponentParams(componentName string, params param.Params) error {
+	text, err := afero.ReadFile(m.appFS, string(m.componentParamsPath))
+	if err != nil {
+		return err
+	}
+
+	appended, err := param.AppendComponent(componentName, string(text), params)
+	if err != nil {
+		return err
+	}
+
+	return afero.WriteFile(m.appFS, string(m.componentParamsPath), []byte(appended), defaultFilePermissions)
+}
+
+func genComponentParamsContent() []byte {
+	return []byte(`{
+  global: {
+    // User-defined global parameters; accessible to all component and environments, Ex:
+    // replicas: 4,
+  },
+  components: {
+    // Component-level parameters, defined initially from 'ks prototype use ...'
+    // Each object below should correspond to a component in the components/ directory
+  },
+}
+`)
+}
diff --git a/metadata/component_test.go b/metadata/component_test.go
index 00a5ddb2..d5021bcd 100644
--- a/metadata/component_test.go
+++ b/metadata/component_test.go
@@ -138,3 +138,21 @@ func TestFindComponentPath(t *testing.T) {
 		t.Fatalf("m.findComponentPath failed; expected '%s', got '%s'", expected, path)
 	}
 }
+
+func TestGenComponentParamsContent(t *testing.T) {
+	expected := `{
+  global: {
+    // User-defined global parameters; accessible to all component and environments, Ex:
+    // replicas: 4,
+  },
+  components: {
+    // Component-level parameters, defined initially from 'ks prototype use ...'
+    // Each object below should correspond to a component in the components/ directory
+  },
+}
+`
+	content := string(genComponentParamsContent())
+	if content != expected {
+		t.Fatalf("Expected to generate:\n%s\n, got:\n%s", expected, content)
+	}
+}
diff --git a/metadata/manager.go b/metadata/manager.go
index ac400a85..8423f16a 100644
--- a/metadata/manager.go
+++ b/metadata/manager.go
@@ -23,7 +23,6 @@ import (
 
 	"github.com/ksonnet/ksonnet/generator"
 	"github.com/ksonnet/ksonnet/metadata/app"
-	param "github.com/ksonnet/ksonnet/metadata/params"
 	"github.com/ksonnet/ksonnet/metadata/registry"
 	log "github.com/sirupsen/logrus"
 	"github.com/spf13/afero"
@@ -223,38 +222,6 @@ func (m *manager) EnvPaths(env string) (metadataPath, mainPath, paramsPath, spec
 	return
 }
 
-func (m *manager) GetComponentParams(component string) (param.Params, error) {
-	text, err := afero.ReadFile(m.appFS, string(m.componentParamsPath))
-	if err != nil {
-		return nil, err
-	}
-
-	return param.GetComponentParams(component, string(text))
-}
-
-func (m *manager) GetAllComponentParams() (map[string]param.Params, error) {
-	text, err := afero.ReadFile(m.appFS, string(m.componentParamsPath))
-	if err != nil {
-		return nil, err
-	}
-
-	return param.GetAllComponentParams(string(text))
-}
-
-func (m *manager) SetComponentParams(component string, params param.Params) error {
-	text, err := afero.ReadFile(m.appFS, string(m.componentParamsPath))
-	if err != nil {
-		return err
-	}
-
-	jsonnet, err := param.SetComponentParams(component, string(text), params)
-	if err != nil {
-		return err
-	}
-
-	return afero.WriteFile(m.appFS, string(m.componentParamsPath), []byte(jsonnet), defaultFilePermissions)
-}
-
 // AppSpec will return the specification for a ksonnet application
 // (typically stored in `app.yaml`)
 func (m *manager) AppSpec() (*app.Spec, error) {
@@ -356,34 +323,6 @@ func (m *manager) createAppDirTree(name string, appYAMLData, baseLibData []byte,
 	return nil
 }
 
-func (m *manager) writeComponentParams(componentName string, params param.Params) error {
-	text, err := afero.ReadFile(m.appFS, string(m.componentParamsPath))
-	if err != nil {
-		return err
-	}
-
-	appended, err := param.AppendComponent(componentName, string(text), params)
-	if err != nil {
-		return err
-	}
-
-	return afero.WriteFile(m.appFS, string(m.componentParamsPath), []byte(appended), defaultFilePermissions)
-}
-
-func genComponentParamsContent() []byte {
-	return []byte(`{
-  global: {
-    // User-defined global parameters; accessible to all component and environments, Ex:
-    // replicas: 4,
-  },
-  components: {
-    // Component-level parameters, defined initially from 'ks prototype use ...'
-    // Each object below should correspond to a component in the components/ directory
-  },
-}
-`)
-}
-
 func generateRegistryYAMLData(incubatorReg registry.Manager) ([]byte, error) {
 	regSpec, err := incubatorReg.FetchRegistrySpec()
 	if err != nil {
diff --git a/metadata/manager_test.go b/metadata/manager_test.go
index 9c4cf463..88175f95 100644
--- a/metadata/manager_test.go
+++ b/metadata/manager_test.go
@@ -277,21 +277,3 @@ func TestDoubleNewFailure(t *testing.T) {
 		t.Fatalf("Expected to fail to create app with message '%s', got '%s'", targetErr, err.Error())
 	}
 }
-
-func TestGenComponentParamsContent(t *testing.T) {
-	expected := `{
-  global: {
-    // User-defined global parameters; accessible to all component and environments, Ex:
-    // replicas: 4,
-  },
-  components: {
-    // Component-level parameters, defined initially from 'ks prototype use ...'
-    // Each object below should correspond to a component in the components/ directory
-  },
-}
-`
-	content := string(genComponentParamsContent())
-	if content != expected {
-		t.Fatalf("Expected to generate:\n%s\n, got:\n%s", expected, content)
-	}
-}
-- 
GitLab