Skip to content

Commit

Permalink
fix: hide progress indicator if asking for creds (#458)
Browse files Browse the repository at this point in the history
* fix: hide progress indicator if asking for creds

Signed-off-by: Matej Vasek <mvasek@redhat.com>

* fix: NPE in integration test

Signed-off-by: Matej Vasek <mvasek@redhat.com>
  • Loading branch information
matejvasek committed Aug 5, 2021
1 parent 6fd42a4 commit 79e2234
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 9 deletions.
15 changes: 7 additions & 8 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ func New(options ...Option) *Client {
remover: &noopRemover{output: os.Stdout},
lister: &noopLister{output: os.Stdout},
dnsProvider: &noopDNSProvider{output: os.Stdout},
progressListener: &noopProgressListener{},
progressListener: &NoopProgressListener{},
emitter: &noopEmitter{},
}

Expand Down Expand Up @@ -480,7 +480,6 @@ func (c *Client) Deploy(ctx context.Context, path string) (err error) {
}

// Push the image for the named service to the configured registry
c.progressListener.Increment("Pushing function image to the registry")
imageDigest, err := c.pusher.Push(ctx, f)
if err != nil {
return
Expand Down Expand Up @@ -644,13 +643,13 @@ type noopDNSProvider struct{ output io.Writer }

func (n *noopDNSProvider) Provide(_ Function) error { return nil }

type noopProgressListener struct{}
type NoopProgressListener struct{}

func (p *noopProgressListener) SetTotal(i int) {}
func (p *noopProgressListener) Increment(m string) {}
func (p *noopProgressListener) Complete(m string) {}
func (p *noopProgressListener) Stopping() {}
func (p *noopProgressListener) Done() {}
func (p *NoopProgressListener) SetTotal(i int) {}
func (p *NoopProgressListener) Increment(m string) {}
func (p *NoopProgressListener) Complete(m string) {}
func (p *NoopProgressListener) Stopping() {}
func (p *NoopProgressListener) Done() {}

type noopEmitter struct{}

Expand Down
3 changes: 2 additions & 1 deletion cmd/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ func newDeployClient(cfg deployConfig) (*fn.Client, error) {

builder := buildpacks.NewBuilder()

pusher, err := docker.NewPusher(docker.WithCredentialsProvider(credentialsProvider))
pusher, err := docker.NewPusher(docker.WithCredentialsProvider(credentialsProvider),
docker.WithProgressListener(listener))
if err != nil {
return nil, err
}
Expand Down
12 changes: 12 additions & 0 deletions docker/pusher.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ type Pusher struct {
// Verbose logging.
Verbose bool
credentialsProvider CredentialsProvider
progressListener fn.ProgressListener

}

func WithCredentialsProvider(cp CredentialsProvider) Opt {
Expand All @@ -41,6 +43,13 @@ func WithCredentialsProvider(cp CredentialsProvider) Opt {
}
}

func WithProgressListener(pl fn.ProgressListener) Opt {
return func (p *Pusher) error {
p.progressListener = pl
return nil
}
}

func EmptyCredentialsProvider(ctx context.Context, registry string) (Credentials, error) {
return Credentials{}, nil
}
Expand All @@ -50,6 +59,7 @@ func NewPusher(opts ...Opt) (*Pusher, error) {
result := &Pusher{
Verbose: false,
credentialsProvider: EmptyCredentialsProvider,
progressListener: &fn.NoopProgressListener{},
}
for _, opt := range opts {
err := opt(result)
Expand Down Expand Up @@ -83,10 +93,12 @@ func (n *Pusher) Push(ctx context.Context, f fn.Function) (digest string, err er
return "", errors.Wrap(err, "failed to create docker api client")
}

n.progressListener.Stopping()
credentials, err := n.credentialsProvider(ctx, registry)
if err != nil {
return "", errors.Wrap(err, "failed to get credentials")
}
n.progressListener.Increment("Pushing function image to the registry")

b, err := json.Marshal(&credentials)
if err != nil {
Expand Down

0 comments on commit 79e2234

Please sign in to comment.