mirror of https://github.com/knative/func.git
fix: hide progress indicator if asking for creds (#458)
* 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>
This commit is contained in:
parent
6fd42a421e
commit
79e2234cbc
15
client.go
15
client.go
|
@ -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{},
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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{}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -32,6 +32,8 @@ type Pusher struct {
|
|||
// Verbose logging.
|
||||
Verbose bool
|
||||
credentialsProvider CredentialsProvider
|
||||
progressListener fn.ProgressListener
|
||||
|
||||
}
|
||||
|
||||
func WithCredentialsProvider(cp CredentialsProvider) Opt {
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue