Skip to content
This repository was archived by the owner on Oct 23, 2023. It is now read-only.

Commit

Permalink
Rename config processing function (#69)
Browse files Browse the repository at this point in the history
  • Loading branch information
farshidtz authored Jul 20, 2022
1 parent 1df7714 commit d3408b1
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 21 deletions.
21 changes: 13 additions & 8 deletions options/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,8 @@ func (cp *configProcessor) processAppConfigOptions(services []string) error {
return nil
}

// ProcessAppConfig processes snap configuration which can be used to override
// edgexfoundry configuration via environment variables sourced by the snap
// ProcessConfig processes snap configuration which can be used to override
// app configuration via environment variables sourced by the snap
// service wrapper script.
// A service specific file (named <service>.env) is created in the
// $SNAP_DATA/config/res directory.
Expand All @@ -215,12 +215,12 @@ func (cp *configProcessor) processAppConfigOptions(services []string) error {
// -> sets env var MY_ENV_VAR for an app
// b) snap set edgex-snap-name config.<my.env.var>
// -> sets env variable for all apps (e.g. DEBUG=true, SERVICE_SERVERBINDADDRESS=0.0.0.0)
func ProcessAppConfig(services ...string) error {
func ProcessConfig(apps ...string) error {
// uncomment to enable snap debugging
// snapctl.Set("debug", "true")

if len(services) == 0 {
return fmt.Errorf("empty service list")
if len(apps) == 0 {
return fmt.Errorf("empty apps list")
}

appOptionsStr, err := snapctl.Get("app-options").Run()
Expand Down Expand Up @@ -296,15 +296,15 @@ Note: Disabling app-options WILL NOT revert the migration!`
log.Info("Unset all 'env.' options.")
}

cp := newConfigProcessor(services)
cp := newConfigProcessor(apps)

// process app-specific options
if err := cp.processGlobalConfigOptions(services); err != nil {
if err := cp.processGlobalConfigOptions(apps); err != nil {
return err
}

// process global options
if err := cp.processAppConfigOptions(services); err != nil {
if err := cp.processAppConfigOptions(apps); err != nil {
return err
}

Expand All @@ -313,5 +313,10 @@ Note: Disabling app-options WILL NOT revert the migration!`
}

return nil
}

// Deprecated
// Use ProcessConfig
func ProcessAppConfig(apps ...string) error {
return ProcessConfig(apps...)
}
26 changes: 13 additions & 13 deletions options/options_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ const (
appOptions = "app-options"
)

func TestProcessAppConfig(t *testing.T) {
func TestProcessConfig(t *testing.T) {
// uncomment to cleanup previous mess
// assert.NoError(t, snapctl.Unset("app-options", "config-enabled", "apps", "config").Run())

Expand All @@ -64,7 +64,7 @@ func TestProcessAppConfig(t *testing.T) {
})

t.Run("reject empty service list", func(t *testing.T) {
require.Error(t, options.ProcessAppConfig())
require.Error(t, options.ProcessConfig())
})

t.Run("global options", func(t *testing.T) {
Expand All @@ -80,14 +80,14 @@ func TestProcessAppConfig(t *testing.T) {
t.Run("reject without enabling", func(t *testing.T) {
require.NoError(t, snapctl.Set(key, value).Run())

require.Error(t, options.ProcessAppConfig(testService, testService2))
require.Error(t, options.ProcessConfig(testService, testService2))
})

t.Run("set+unset", func(t *testing.T) {
require.NoError(t, snapctl.Set(appOptions, "true").Run())
t.Cleanup(func() {
require.NoError(t, snapctl.Unset("config").Run())
require.NoError(t, options.ProcessAppConfig(testService, testService2))
require.NoError(t, options.ProcessConfig(testService, testService2))
// disable config after processing once, otherwise the env files won't get cleaned up
require.NoError(t, snapctl.Unset(appOptions).Run())

Expand All @@ -97,7 +97,7 @@ func TestProcessAppConfig(t *testing.T) {

require.NoError(t, snapctl.Set(key, value).Run())

require.NoError(t, options.ProcessAppConfig(testService, testService2))
require.NoError(t, options.ProcessConfig(testService, testService2))

// both env files should have it
require.NoError(t, fileContains(t, envFile, `X_Y="value"`),
Expand All @@ -123,7 +123,7 @@ func TestProcessAppConfig(t *testing.T) {
require.NoError(t, snapctl.Set(appOptions, "true").Run())
t.Cleanup(func() {
require.NoError(t, snapctl.Unset("apps").Run())
require.NoError(t, options.ProcessAppConfig(testService, testService2))
require.NoError(t, options.ProcessConfig(testService, testService2))
// disable config after processing once, otherwise the env files won't get cleaned up
require.NoError(t, snapctl.Unset(appOptions).Run())

Expand All @@ -132,7 +132,7 @@ func TestProcessAppConfig(t *testing.T) {

require.NoError(t, snapctl.Set(key, value).Run())

require.NoError(t, options.ProcessAppConfig(testService, testService2))
require.NoError(t, options.ProcessConfig(testService, testService2))

// first env file should have it
require.NoError(t, fileContains(t, envFile, `X_Y="value"`),
Expand All @@ -157,7 +157,7 @@ func TestProcessAppConfig(t *testing.T) {
require.NoError(t, snapctl.Set(appOptions, "true").Run())

require.NoError(t, snapctl.Set(legacyKey, legacyValue).Run())
require.NoError(t, options.ProcessAppConfig(testService))
require.NoError(t, options.ProcessConfig(testService))
})

t.Run("reject mixed legacy options", func(t *testing.T) {
Expand All @@ -183,7 +183,7 @@ func TestProcessAppConfig(t *testing.T) {
require.NoError(t, snapctl.Set(key, value).Run())

require.NoError(t, applyLegacyOptions("core-data"))
require.Error(t, options.ProcessAppConfig(testService, "core-data"))
require.Error(t, options.ProcessConfig(testService, "core-data"))
})

t.Run("reject unknown app", func(t *testing.T) {
Expand All @@ -197,7 +197,7 @@ func TestProcessAppConfig(t *testing.T) {
require.NoError(t, snapctl.Unset("apps").Run())
})

err := options.ProcessAppConfig(testService, "core-data")
err := options.ProcessConfig(testService, "core-data")
assert.Error(t, err)
require.Contains(t, err.Error(), "unsupported")

Expand All @@ -211,21 +211,21 @@ func TestProcessAppConfig(t *testing.T) {

t.Cleanup(func() {
require.NoError(t, snapctl.Unset("apps").Run())
require.NoError(t, options.ProcessAppConfig(app))
require.NoError(t, options.ProcessConfig(app))
// disable config after processing once, otherwise the env files won't get cleaned up
require.NoError(t, snapctl.Unset(appOptions).Run())
})

require.NoError(t, snapctl.Set(key, value).Run())
require.NoError(t, options.ProcessAppConfig(app))
require.NoError(t, options.ProcessConfig(app))

// env file should have the X_Y
require.NoError(t, fileContains(t, envFile, `X_Y="value"`),
"File content:\n%s", readFile(t, envFile))

// set something bad
require.NoError(t, snapctl.Set("apps."+app+".config.dots.disallowed", value).Run())
require.Error(t, options.ProcessAppConfig(app))
require.Error(t, options.ProcessConfig(app))

// env file should still have the X_Y
require.Error(t, fileContains(t, envFile, `DOTS_DISALLOWED="value"`),
Expand Down

0 comments on commit d3408b1

Please sign in to comment.