 935645b03a
			
		
	
	935645b03a
	
	
	
		
			
			Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: update events package to include emitter and use envelope proto Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: add events service Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: enable events service and update ctr events to use events service Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> event listeners Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: helper func for emitting in services Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: improved cli for containers and tasks Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> create event envelope with poster Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: introspect event data to use for type url Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: use pb encoding; add event types Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: instrument content and snapshot services with events Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: instrument image service with events Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: instrument namespace service with events Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: add namespace support Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: only send events from namespace requested from client Signed-off-by: Evan Hazlett <ejhazlett@gmail.com> events: switch to go-events for broadcasting Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
		
			
				
	
	
		
			40 lines
		
	
	
		
			727 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			727 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package plugin
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"fmt"
 | |
| 
 | |
| 	"github.com/containerd/containerd/events"
 | |
| )
 | |
| 
 | |
| func NewContext(plugins map[PluginType][]interface{}) *InitContext {
 | |
| 	return &InitContext{
 | |
| 		plugins: plugins,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| type InitContext struct {
 | |
| 	Root    string
 | |
| 	Context context.Context
 | |
| 	Config  interface{}
 | |
| 	Emitter *events.Emitter
 | |
| 
 | |
| 	plugins map[PluginType][]interface{}
 | |
| }
 | |
| 
 | |
| func (i *InitContext) Get(t PluginType) (interface{}, error) {
 | |
| 	p := i.plugins[t]
 | |
| 	if len(p) == 0 {
 | |
| 		return nil, fmt.Errorf("no plugins registered for %s", t)
 | |
| 	}
 | |
| 	return p[0], nil
 | |
| }
 | |
| 
 | |
| func (i *InitContext) GetAll(t PluginType) ([]interface{}, error) {
 | |
| 	p, ok := i.plugins[t]
 | |
| 	if !ok {
 | |
| 		return nil, fmt.Errorf("no plugins registered for %s", t)
 | |
| 	}
 | |
| 	return p, nil
 | |
| }
 |