fix(hubl): improve error in chain (#18550)
This commit is contained in:
parent
34b1634134
commit
8a2c9084ba
@ -42,7 +42,7 @@ func loadFileDescriptorsGRPCReflection(ctx context.Context, client *grpc.ClientC
|
||||
}
|
||||
|
||||
fdMap := map[string]*descriptorpb.FileDescriptorProto{}
|
||||
waitListServiceRes := make(chan *grpc_reflection_v1alpha.ListServiceResponse)
|
||||
waitListServiceRes := make(chan *grpc_reflection_v1alpha.ListServiceResponse) //nolint:staticcheck // we want to use the deprecated field
|
||||
waitc := make(chan struct{})
|
||||
go func() {
|
||||
for {
|
||||
@ -60,14 +60,14 @@ func loadFileDescriptorsGRPCReflection(ctx context.Context, client *grpc.ClientC
|
||||
case *grpc_reflection_v1alpha.ServerReflectionResponse_ErrorResponse:
|
||||
panic(err)
|
||||
case *grpc_reflection_v1alpha.ServerReflectionResponse_ListServicesResponse:
|
||||
waitListServiceRes <- res.ListServicesResponse
|
||||
waitListServiceRes <- res.ListServicesResponse //nolint:staticcheck // we want to use the deprecated field
|
||||
case *grpc_reflection_v1alpha.ServerReflectionResponse_FileDescriptorResponse:
|
||||
processFileDescriptorsResponse(res, fdMap)
|
||||
_ = processFileDescriptorsResponse(res, fdMap)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
if err = reflectClient.Send(&grpc_reflection_v1alpha.ServerReflectionRequest{
|
||||
if err = reflectClient.Send(&grpc_reflection_v1alpha.ServerReflectionRequest{ //nolint:staticcheck // we want to use the deprecated field
|
||||
MessageRequest: &grpc_reflection_v1alpha.ServerReflectionRequest_ListServices{},
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
@ -75,10 +75,10 @@ func loadFileDescriptorsGRPCReflection(ctx context.Context, client *grpc.ClientC
|
||||
|
||||
listServiceRes := <-waitListServiceRes
|
||||
|
||||
for _, response := range listServiceRes.Service {
|
||||
err = reflectClient.Send(&grpc_reflection_v1alpha.ServerReflectionRequest{
|
||||
for _, response := range listServiceRes.Service { //nolint:staticcheck // we want to use the deprecated field
|
||||
err = reflectClient.Send(&grpc_reflection_v1alpha.ServerReflectionRequest{ //nolint:staticcheck // we want to use the deprecated field
|
||||
MessageRequest: &grpc_reflection_v1alpha.ServerReflectionRequest_FileContainingSymbol{
|
||||
FileContainingSymbol: response.Name,
|
||||
FileContainingSymbol: response.Name, //nolint:staticcheck // we want to use the deprecated field
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
@ -87,7 +87,7 @@ func loadFileDescriptorsGRPCReflection(ctx context.Context, client *grpc.ClientC
|
||||
}
|
||||
|
||||
for _, msgName := range interfaceImplNames {
|
||||
err = reflectClient.Send(&grpc_reflection_v1alpha.ServerReflectionRequest{
|
||||
err = reflectClient.Send(&grpc_reflection_v1alpha.ServerReflectionRequest{ //nolint:staticcheck // we want to use the deprecated field
|
||||
MessageRequest: &grpc_reflection_v1alpha.ServerReflectionRequest_FileContainingSymbol{
|
||||
FileContainingSymbol: msgName,
|
||||
},
|
||||
@ -136,16 +136,18 @@ func loadFileDescriptorsGRPCReflection(ctx context.Context, client *grpc.ClientC
|
||||
return fdSet, nil
|
||||
}
|
||||
|
||||
func processFileDescriptorsResponse(res *grpc_reflection_v1alpha.ServerReflectionResponse_FileDescriptorResponse, fdMap map[string]*descriptorpb.FileDescriptorProto) {
|
||||
for _, bz := range res.FileDescriptorResponse.FileDescriptorProto {
|
||||
func processFileDescriptorsResponse(res *grpc_reflection_v1alpha.ServerReflectionResponse_FileDescriptorResponse, fdMap map[string]*descriptorpb.FileDescriptorProto) error {
|
||||
for _, bz := range res.FileDescriptorResponse.FileDescriptorProto { //nolint:staticcheck // we want to use the deprecated field
|
||||
fd := &descriptorpb.FileDescriptorProto{}
|
||||
err := proto.Unmarshal(bz, fd)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return fmt.Errorf("error unmarshalling file descriptor: %w", err)
|
||||
}
|
||||
|
||||
fdMap[fd.GetName()] = fd
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func missingFileDescriptors(fdMap map[string]*descriptorpb.FileDescriptorProto, cantFind map[string]bool) []string {
|
||||
@ -180,13 +182,13 @@ func addMissingFileDescriptors(ctx context.Context, client *grpc.ClientConn, fdM
|
||||
}
|
||||
|
||||
if res, ok := in.MessageResponse.(*grpc_reflection_v1alpha.ServerReflectionResponse_FileDescriptorResponse); ok {
|
||||
processFileDescriptorsResponse(res, fdMap)
|
||||
_ = processFileDescriptorsResponse(res, fdMap)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
for _, file := range missingFiles {
|
||||
err = reflectClient.Send(&grpc_reflection_v1alpha.ServerReflectionRequest{
|
||||
err = reflectClient.Send(&grpc_reflection_v1alpha.ServerReflectionRequest{ //nolint:staticcheck // we want to use the deprecated field
|
||||
MessageRequest: &grpc_reflection_v1alpha.ServerReflectionRequest_FileByFilename{
|
||||
FileByFilename: file,
|
||||
},
|
||||
|
||||
@ -130,7 +130,17 @@ func RemoteCommand(config *config.Config, configDir string) ([]*cobra.Command, e
|
||||
chainCmd.AddCommand(KeyringCmd(chainInfo.Chain))
|
||||
|
||||
if err := appOpts.EnhanceRootCommandWithBuilder(chainCmd, builder); err != nil {
|
||||
return nil, err
|
||||
// when enriching the command with autocli fails, we add a command that
|
||||
// will print the error and allow the user to reconfigure the chain instead
|
||||
chainCmd.RunE = func(cmd *cobra.Command, args []string) error {
|
||||
cmd.Printf("Error while loading AutoCLI data for %s: %+v\n", chain, err)
|
||||
cmd.Printf("Attempt to reconfigure the chain using the %s flag\n", flags.FlagConfig)
|
||||
if cmd.Flags().Changed(flags.FlagConfig) {
|
||||
return reconfigure(cmd, config, configDir, chain)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
commands = append(commands, chainCmd)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user