github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/swarmkit/cmd/swarmctl/secret/inspect.go (about)

     1  package secret
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  	"os"
     7  	"text/tabwriter"
     8  
     9  	"github.com/docker/swarmkit/api"
    10  	"github.com/docker/swarmkit/cmd/swarmctl/common"
    11  	gogotypes "github.com/gogo/protobuf/types"
    12  	"github.com/spf13/cobra"
    13  )
    14  
    15  func printSecretSummary(secret *api.Secret) {
    16  	w := tabwriter.NewWriter(os.Stdout, 8, 8, 8, ' ', 0)
    17  	defer w.Flush()
    18  
    19  	common.FprintfIfNotEmpty(w, "ID\t: %s\n", secret.ID)
    20  	common.FprintfIfNotEmpty(w, "Name\t: %s\n", secret.Spec.Annotations.Name)
    21  	if len(secret.Spec.Annotations.Labels) > 0 {
    22  		fmt.Fprintln(w, "Labels\t")
    23  		for k, v := range secret.Spec.Annotations.Labels {
    24  			fmt.Fprintf(w, "  %s\t: %s\n", k, v)
    25  		}
    26  	}
    27  
    28  	common.FprintfIfNotEmpty(w, "Created\t: %s\n", gogotypes.TimestampString(secret.Meta.CreatedAt))
    29  }
    30  
    31  var (
    32  	inspectCmd = &cobra.Command{
    33  		Use:   "inspect <secret ID or name>",
    34  		Short: "Inspect a secret",
    35  		RunE: func(cmd *cobra.Command, args []string) error {
    36  			if len(args) != 1 {
    37  				return errors.New("inspect command takes a single secret ID or name")
    38  			}
    39  
    40  			client, err := common.Dial(cmd)
    41  			if err != nil {
    42  				return err
    43  			}
    44  
    45  			secret, err := getSecret(common.Context(cmd), client, args[0])
    46  			if err != nil {
    47  				return err
    48  			}
    49  
    50  			printSecretSummary(secret)
    51  			return nil
    52  		},
    53  	}
    54  )