handle nil extension points

This commit is contained in:
JieJhih Jhang 2019-05-18 07:24:27 +08:00
parent 2cd5fc54a1
commit 0734d1debb

View File

@ -84,6 +84,7 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
f.plugins[name] = p
}
if plugins.Reserve != nil {
for _, r := range plugins.Reserve.Enabled {
if pg, ok := f.plugins[r.Name]; ok {
p, ok := pg.(ReservePlugin)
@ -95,7 +96,9 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
return nil, fmt.Errorf("reserve plugin %v does not exist", r.Name)
}
}
}
if plugins.PreBind != nil {
for _, pb := range plugins.PreBind.Enabled {
if pg, ok := f.plugins[pb.Name]; ok {
p, ok := pg.(PrebindPlugin)
@ -107,7 +110,9 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
return nil, fmt.Errorf("prebind plugin %v does not exist", pb.Name)
}
}
}
if plugins.Unreserve != nil {
for _, ur := range plugins.Unreserve.Enabled {
if pg, ok := f.plugins[ur.Name]; ok {
p, ok := pg.(UnreservePlugin)
@ -119,7 +124,9 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
return nil, fmt.Errorf("unreserve plugin %v does not exist", ur.Name)
}
}
}
if plugins.Permit != nil {
for _, pr := range plugins.Permit.Enabled {
if pg, ok := f.plugins[pr.Name]; ok {
p, ok := pg.(PermitPlugin)
@ -131,7 +138,9 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
return nil, fmt.Errorf("permit plugin %v does not exist", pr.Name)
}
}
}
if plugins.QueueSort != nil {
for _, qs := range plugins.QueueSort.Enabled {
if pg, ok := f.plugins[qs.Name]; ok {
p, ok := pg.(QueueSortPlugin)
@ -146,6 +155,7 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
return nil, fmt.Errorf("queue sort plugin %v does not exist", qs.Name)
}
}
}
return f, nil
}