Skip to content
Snippets Groups Projects
Commit eaec9fba authored by Jessica Yuen's avatar Jessica Yuen
Browse files

Move component param logic out of manager.go


Signed-off-by: default avatarJessica Yuen <im.jessicayuen@gmail.com>
parent 2dbd7ecc
No related branches found
No related tags found
No related merge requests found
......@@ -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
},
}
`)
}
......@@ -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)
}
}
......@@ -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 {
......
......@@ -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)
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment