diff --git a/dfssc/cmd/unregister.go b/dfssc/cmd/unregister.go index 32a05cc3e6069471d07192ce4278adcddfec01fc..97e9054a1f1a3e98164668db233c252c386c0ba8 100644 --- a/dfssc/cmd/unregister.go +++ b/dfssc/cmd/unregister.go @@ -22,14 +22,15 @@ var unregisterCmd = &cobra.Command{ } // Confirmation - var ready string + var passphrase, ready string + _ = readPassword(&passphrase, false) readStringParam("Do you REALLY want to delete "+cert.Subject.CommonName+"? Type 'yes' to confirm", "", &ready) if ready != "yes" { fmt.Fprintln(os.Stderr, "Unregistering aborted!") os.Exit(1) } - err = user.Unregister() + err = user.Unregister(passphrase) if err != nil { fmt.Fprintln(os.Stderr, "Cannot unregister:", err.Error()) os.Exit(2) diff --git a/dfssc/user/unregister.go b/dfssc/user/unregister.go index 428922e74e226632c6840d8b4c2911ea3c210e0c..a218b1d1e050fcaf49b01ebfc4fabea1668824b5 100644 --- a/dfssc/user/unregister.go +++ b/dfssc/user/unregister.go @@ -1,31 +1,35 @@ package user import ( - "errors" - - pb "dfss/dfssp/api" + "dfss/dfssc/common" + "dfss/dfssc/security" + "dfss/dfssp/api" "dfss/net" + "github.com/spf13/viper" "golang.org/x/net/context" - "google.golang.org/grpc" ) // Unregister a user from the platform -func Unregister() error { - client, err := connect() +func Unregister(passphrase string) error { + auth := security.NewAuthContainer(passphrase) + ca, cert, key, err := auth.LoadFiles() + if err != nil { + return err + } + + conn, err := net.Connect(viper.GetString("platform_addrport"), cert, key, ca, nil) if err != nil { return err } - // Stop the context if it takes too long for the platform to answer + client := api.NewPlatformClient(conn) ctx, cancel := context.WithTimeout(context.Background(), net.DefaultTimeout) defer cancel() - response, err := client.Unregister(ctx, &pb.Empty{}) + response, err := client.Unregister(ctx, &api.Empty{}) + if err != nil { - return errors.New(grpc.ErrorDesc(err)) - } - if response.Code != pb.ErrorCode_SUCCESS { - return errors.New(response.Message) + return err } - return nil + return common.EvaluateErrorCodeResponse(response) }