Skip to content

Metadata cannot be obtained through grpc #4941

@saber-wang

Description

@saber-wang

In what area(s)?

/area runtime

What version of Dapr?

1.8.0

Expected Behavior

Get metadata through grpc

Actual Behavior

Get empty object
image

Steps to Reproduce the Problem

It can be considered that it has not been achieved···:

dapr/pkg/grpc/api.go

Lines 1472 to 1497 in 451f75d

func (a *api) GetMetadata(ctx context.Context, in *emptypb.Empty) (*runtimev1pb.GetMetadataResponse, error) {
temp := make(map[string]string)
// Copy synchronously so it can be serialized to JSON.
a.extendedMetadata.Range(func(key, value interface{}) bool {
temp[key.(string)] = value.(string)
return true
})
temp[daprRuntimeVersionKey] = a.daprRunTimeVersion
registeredComponents := make([]*runtimev1pb.RegisteredComponents, 0, len(a.components))
componentsCapabilties := a.getComponentsCapabilitesFn()
for _, comp := range a.components {
registeredComp := &runtimev1pb.RegisteredComponents{
Name: comp.Name,
Version: comp.Spec.Version,
Type: comp.Spec.Type,
Capabilities: getOrDefaultCapabilites(componentsCapabilties, comp.Name),
}
registeredComponents = append(registeredComponents, registeredComp)
}
response := &runtimev1pb.GetMetadataResponse{
ExtendedMetadata: temp,
RegisteredComponents: registeredComponents,
}
return response, nil
}

This map cannot be synchronized before grpc and http:

extendedMetadata sync.Map

extendedMetadata sync.Map

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions