services/introspection: support to show introspection grpc service

Signed-off-by: Iceber Gu <wei.cai-nat@daocloud.io>
This commit is contained in:
Iceber Gu
2021-05-04 14:40:20 +08:00
committed by Derek McGowan
parent bce18cb04f
commit ce3871966e
4 changed files with 47 additions and 19 deletions

View File

@@ -132,9 +132,19 @@ func (ps *Set) Get(t Type) (interface{}, error) {
return nil, fmt.Errorf("no plugins registered for %s: %w", t, errdefs.ErrNotFound)
}
// GetAll returns all initialized plugins
func (ps *Set) GetAll() []*Plugin {
return ps.ordered
}
// Plugins returns plugin set
func (i *InitContext) Plugins() *Set {
return i.plugins
}
// GetAll plugins in the set
func (i *InitContext) GetAll() []*Plugin {
return i.plugins.ordered
return i.plugins.GetAll()
}
// GetByID returns the plugin of the given type and ID

View File

@@ -177,6 +177,25 @@ func checkUnique(r *Registration) error {
return nil
}
// AreRegisteredPluginsInitialized returns all registered plugins are initialized
func AreRegisteredPluginsInitialized(plugins *Set) bool {
if len(register.r) != len(plugins.ordered) {
return false
}
for _, reg := range register.r {
byID, typeok := plugins.byTypeAndID[reg.Type]
if !typeok {
return false
}
if _, ok := byID[reg.ID]; !ok {
return false
}
}
return true
}
// DisableFilter filters out disabled plugins
type DisableFilter func(r *Registration) bool