Show release content when timeout occur for install and rollback. For rollback show it only when debug flag is set.

pull/3438/head
Sebastien Plisson 7 years ago
parent 11d5c4fbeb
commit b03f589064

@ -267,7 +267,7 @@ func (i *installCmd) run() error {
return fmt.Errorf("cannot load requirements: %v", err)
}
res, err := i.client.InstallReleaseFromChart(
resp, err := i.client.InstallReleaseFromChart(
chartRequested,
i.namespace,
helm.ValueOverrides(rawVals),
@ -278,15 +278,25 @@ func (i *installCmd) run() error {
helm.InstallDisableCRDHook(i.disableCRDHook),
helm.InstallTimeout(i.timeout),
helm.InstallWait(i.wait))
if err != nil {
return prettyError(err)
}
rel := res.GetRelease()
// If there is an error while waiting, make a call without waiting to get the release content
if (resp == nil || resp.Release == nil) && i.wait {
if res, e := i.client.ReleaseContent(i.name); e != nil {
fmt.Fprintf(i.out, "Error reading release content: %v", prettyError(e))
} else {
printRelease(i.out, res.Release)
}
} else {
rel := resp.GetRelease()
if rel == nil {
return nil
}
i.printRelease(rel)
printRelease(i.out, rel)
}
if err != nil {
return prettyError(err)
}
// If this is a dry run, we can't display status.
if i.dryRun {
@ -298,7 +308,7 @@ func (i *installCmd) run() error {
}
// Print the status like status command does
status, err := i.client.ReleaseStatus(rel.Name)
status, err := i.client.ReleaseStatus(i.name)
if err != nil {
return prettyError(err)
}

@ -88,7 +88,7 @@ func newRollbackCmd(c helm.Interface, out io.Writer) *cobra.Command {
}
func (r *rollbackCmd) run() error {
_, err := r.client.RollbackRelease(
resp, err := r.client.RollbackRelease(
r.name,
helm.RollbackDryRun(r.dryRun),
helm.RollbackRecreate(r.recreate),
@ -97,6 +97,24 @@ func (r *rollbackCmd) run() error {
helm.RollbackVersion(r.revision),
helm.RollbackTimeout(r.timeout),
helm.RollbackWait(r.wait))
if settings.Debug {
// If there is an error while waiting, make a call without waiting to get the release content
if (resp == nil || resp.Release == nil) && r.wait {
if res, e := r.client.ReleaseContent(r.name); e != nil {
fmt.Fprintf(r.out, "Error reading release content: %v", prettyError(e))
} else {
printRelease(r.out, res.Release)
}
} else {
rel := resp.GetRelease()
if rel == nil {
return nil
}
printRelease(r.out, rel)
}
}
if err != nil {
return prettyError(err)
}

Loading…
Cancel
Save