Skip to content

Commit

Permalink
make runset a map
Browse files Browse the repository at this point in the history
Signed-off-by: jkoberg <[email protected]>
  • Loading branch information
kobergj committed Jul 21, 2022
1 parent db363b6 commit f64ea7d
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 19 deletions.
4 changes: 2 additions & 2 deletions ocis-pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ type Mode int
type Runtime struct {
Port string `yaml:"port" env:"OCIS_RUNTIME_PORT"`
Host string `yaml:"host" env:"OCIS_RUNTIME_HOST"`
Extensions string `yaml:"services" env:"OCIS_RUN_EXTENSIONS;OCIS_RUN_SERVICES" desc:"Expects a space separated list of service names. Will start only the listed services."`
Disabled string `yaml:"disabled_services" env:"OCIS_EXCLUDE_RUN_SERVICES" desc:"Expects a space separated list of service names. Will start all services except for the ones listed. Has no effect when OCIS_RUN_SERVICES is set."`
Extensions string `yaml:"services" env:"OCIS_RUN_EXTENSIONS;OCIS_RUN_SERVICES" desc:"Expects a comma separated list of service names. Will start only the listed services."`
Disabled string `yaml:"disabled_services" env:"OCIS_EXCLUDE_RUN_SERVICES" desc:"Expects a comma separated list of service names. Will start all services except of the ones listed. Has no effect when OCIS_RUN_SERVICES is set."`
}

// Config combines all available configuration parts.
Expand Down
30 changes: 13 additions & 17 deletions ocis/pkg/runtime/service/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ import (

var (
// runset keeps track of which extensions to start supervised.
runset []string
runset map[string]struct{}
)

type serviceFuncMap map[string]func(*ociscfg.Config) suture.Service
Expand Down Expand Up @@ -227,7 +227,7 @@ func Start(o ...Option) error {

// scheduleServiceTokens adds service tokens to the service supervisor.
func scheduleServiceTokens(s *Service, funcSet serviceFuncMap) {
for _, name := range runset {
for name := range runset {
if _, ok := funcSet[name]; !ok {
continue
}
Expand All @@ -240,31 +240,27 @@ func scheduleServiceTokens(s *Service, funcSet serviceFuncMap) {
// generateRunSet interprets the cfg.Runtime.Extensions config option to cherry-pick which services to start using
// the runtime.
func (s *Service) generateRunSet(cfg *ociscfg.Config) {
runset = make(map[string]struct{})
if cfg.Runtime.Extensions != "" {
e := strings.Split(strings.ReplaceAll(cfg.Runtime.Extensions, " ", ""), ",")
for i := range e {
runset = append(runset, e[i])
for _, name := range e {
runset[name] = struct{}{}
}
return
}

disabled := make(map[string]bool)
if cfg.Runtime.Disabled != "" {
e := strings.Split(strings.ReplaceAll(cfg.Runtime.Disabled, " ", ""), ",")
for _, s := range e {
disabled[s] = true
}
}

for name := range s.ServicesRegistry {
if !disabled[name] {
runset = append(runset, name)
}
runset[name] = struct{}{}
}

for name := range s.Delayed {
if !disabled[name] {
runset = append(runset, name)
runset[name] = struct{}{}
}

if cfg.Runtime.Disabled != "" {
e := strings.Split(strings.ReplaceAll(cfg.Runtime.Disabled, " ", ""), ",")
for _, name := range e {
delete(runset, name)
}
}
}
Expand Down

0 comments on commit f64ea7d

Please sign in to comment.