mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	handle nil extension points
This commit is contained in:
		@@ -84,66 +84,76 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
 | 
			
		||||
		f.plugins[name] = p
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, r := range plugins.Reserve.Enabled {
 | 
			
		||||
		if pg, ok := f.plugins[r.Name]; ok {
 | 
			
		||||
			p, ok := pg.(ReservePlugin)
 | 
			
		||||
			if !ok {
 | 
			
		||||
				return nil, fmt.Errorf("plugin %v does not extend reserve plugin", r.Name)
 | 
			
		||||
	if plugins.Reserve != nil {
 | 
			
		||||
		for _, r := range plugins.Reserve.Enabled {
 | 
			
		||||
			if pg, ok := f.plugins[r.Name]; ok {
 | 
			
		||||
				p, ok := pg.(ReservePlugin)
 | 
			
		||||
				if !ok {
 | 
			
		||||
					return nil, fmt.Errorf("plugin %v does not extend reserve plugin", r.Name)
 | 
			
		||||
				}
 | 
			
		||||
				f.reservePlugins = append(f.reservePlugins, p)
 | 
			
		||||
			} else {
 | 
			
		||||
				return nil, fmt.Errorf("reserve plugin %v does not exist", r.Name)
 | 
			
		||||
			}
 | 
			
		||||
			f.reservePlugins = append(f.reservePlugins, p)
 | 
			
		||||
		} else {
 | 
			
		||||
			return nil, fmt.Errorf("reserve plugin %v does not exist", r.Name)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, pb := range plugins.PreBind.Enabled {
 | 
			
		||||
		if pg, ok := f.plugins[pb.Name]; ok {
 | 
			
		||||
			p, ok := pg.(PrebindPlugin)
 | 
			
		||||
			if !ok {
 | 
			
		||||
				return nil, fmt.Errorf("plugin %v does not extend prebind plugin", pb.Name)
 | 
			
		||||
	if plugins.PreBind != nil {
 | 
			
		||||
		for _, pb := range plugins.PreBind.Enabled {
 | 
			
		||||
			if pg, ok := f.plugins[pb.Name]; ok {
 | 
			
		||||
				p, ok := pg.(PrebindPlugin)
 | 
			
		||||
				if !ok {
 | 
			
		||||
					return nil, fmt.Errorf("plugin %v does not extend prebind plugin", pb.Name)
 | 
			
		||||
				}
 | 
			
		||||
				f.prebindPlugins = append(f.prebindPlugins, p)
 | 
			
		||||
			} else {
 | 
			
		||||
				return nil, fmt.Errorf("prebind plugin %v does not exist", pb.Name)
 | 
			
		||||
			}
 | 
			
		||||
			f.prebindPlugins = append(f.prebindPlugins, p)
 | 
			
		||||
		} else {
 | 
			
		||||
			return nil, fmt.Errorf("prebind plugin %v does not exist", pb.Name)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, ur := range plugins.Unreserve.Enabled {
 | 
			
		||||
		if pg, ok := f.plugins[ur.Name]; ok {
 | 
			
		||||
			p, ok := pg.(UnreservePlugin)
 | 
			
		||||
			if !ok {
 | 
			
		||||
				return nil, fmt.Errorf("plugin %v does not extend unreserve plugin", ur.Name)
 | 
			
		||||
	if plugins.Unreserve != nil {
 | 
			
		||||
		for _, ur := range plugins.Unreserve.Enabled {
 | 
			
		||||
			if pg, ok := f.plugins[ur.Name]; ok {
 | 
			
		||||
				p, ok := pg.(UnreservePlugin)
 | 
			
		||||
				if !ok {
 | 
			
		||||
					return nil, fmt.Errorf("plugin %v does not extend unreserve plugin", ur.Name)
 | 
			
		||||
				}
 | 
			
		||||
				f.unreservePlugins = append(f.unreservePlugins, p)
 | 
			
		||||
			} else {
 | 
			
		||||
				return nil, fmt.Errorf("unreserve plugin %v does not exist", ur.Name)
 | 
			
		||||
			}
 | 
			
		||||
			f.unreservePlugins = append(f.unreservePlugins, p)
 | 
			
		||||
		} else {
 | 
			
		||||
			return nil, fmt.Errorf("unreserve plugin %v does not exist", ur.Name)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, pr := range plugins.Permit.Enabled {
 | 
			
		||||
		if pg, ok := f.plugins[pr.Name]; ok {
 | 
			
		||||
			p, ok := pg.(PermitPlugin)
 | 
			
		||||
			if !ok {
 | 
			
		||||
				return nil, fmt.Errorf("plugin %v does not extend permit plugin", pr.Name)
 | 
			
		||||
	if plugins.Permit != nil {
 | 
			
		||||
		for _, pr := range plugins.Permit.Enabled {
 | 
			
		||||
			if pg, ok := f.plugins[pr.Name]; ok {
 | 
			
		||||
				p, ok := pg.(PermitPlugin)
 | 
			
		||||
				if !ok {
 | 
			
		||||
					return nil, fmt.Errorf("plugin %v does not extend permit plugin", pr.Name)
 | 
			
		||||
				}
 | 
			
		||||
				f.permitPlugins = append(f.permitPlugins, p)
 | 
			
		||||
			} else {
 | 
			
		||||
				return nil, fmt.Errorf("permit plugin %v does not exist", pr.Name)
 | 
			
		||||
			}
 | 
			
		||||
			f.permitPlugins = append(f.permitPlugins, p)
 | 
			
		||||
		} else {
 | 
			
		||||
			return nil, fmt.Errorf("permit plugin %v does not exist", pr.Name)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, qs := range plugins.QueueSort.Enabled {
 | 
			
		||||
		if pg, ok := f.plugins[qs.Name]; ok {
 | 
			
		||||
			p, ok := pg.(QueueSortPlugin)
 | 
			
		||||
			if !ok {
 | 
			
		||||
				return nil, fmt.Errorf("plugin %v does not extend queue sort plugin", qs.Name)
 | 
			
		||||
	if plugins.QueueSort != nil {
 | 
			
		||||
		for _, qs := range plugins.QueueSort.Enabled {
 | 
			
		||||
			if pg, ok := f.plugins[qs.Name]; ok {
 | 
			
		||||
				p, ok := pg.(QueueSortPlugin)
 | 
			
		||||
				if !ok {
 | 
			
		||||
					return nil, fmt.Errorf("plugin %v does not extend queue sort plugin", qs.Name)
 | 
			
		||||
				}
 | 
			
		||||
				f.queueSortPlugins = append(f.queueSortPlugins, p)
 | 
			
		||||
				if len(f.queueSortPlugins) > 1 {
 | 
			
		||||
					return nil, fmt.Errorf("only one queue sort plugin can be enabled")
 | 
			
		||||
				}
 | 
			
		||||
			} else {
 | 
			
		||||
				return nil, fmt.Errorf("queue sort plugin %v does not exist", qs.Name)
 | 
			
		||||
			}
 | 
			
		||||
			f.queueSortPlugins = append(f.queueSortPlugins, p)
 | 
			
		||||
			if len(f.queueSortPlugins) > 1 {
 | 
			
		||||
				return nil, fmt.Errorf("only one queue sort plugin can be enabled")
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			return nil, fmt.Errorf("queue sort plugin %v does not exist", qs.Name)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user