Refactor to use localizer to create error with status

This commit is contained in:
sophia 2022-09-09 15:51:30 -04:00
parent bd801af984
commit b9fb6c5f5f

View File

@ -7,7 +7,6 @@ import (
"github.com/hashicorp/go-argmapper" "github.com/hashicorp/go-argmapper"
"github.com/hashicorp/go-hclog" "github.com/hashicorp/go-hclog"
"google.golang.org/genproto/googleapis/rpc/errdetails"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
"google.golang.org/grpc/status" "google.golang.org/grpc/status"
@ -521,24 +520,13 @@ func (v *Vagrantfile) TargetConfig(
if validateProvider { if validateProvider {
usable, err := pp.Component.(core.Provider).Usable() usable, err := pp.Component.(core.Provider).Usable()
if !usable { if !usable {
errStatus, ok := status.FromError(err) if errStatus, ok := status.FromError(err); ok {
if !ok { return nil, localizer.LocalizeStatusErr(
return nil, err
}
msg := localizer.LocalizeMsg(
"provider_not_usable", "provider_not_usable",
map[string]string{"Provider": provider, "Machine": name}, map[string]string{"Provider": provider, "Machine": name},
errStatus,
) )
localizedProtoMsg := &errdetails.LocalizedMessage{
Message: msg,
Locale: "en",
} }
returnErr := status.New(errStatus.Code(), msg)
returnErr, _ = returnErr.WithDetails(localizedProtoMsg)
for _, d := range errStatus.Details() {
returnErr, _ = returnErr.WithDetails(d.(*errdetails.LocalizedMessage))
}
return nil, returnErr.Err()
} }
if err != nil { if err != nil {
return nil, err return nil, err