only run replace after patch failed

Signed-off-by: Johannes Gesenhues <johannges@gmail.com>
Signed-off-by: jgesenhu <johannes.gesenhues@obi.de>
pull/6933/head
jgesenhu 6 years ago
parent f39e13b8dd
commit 2bb3404568

@ -389,22 +389,20 @@ func updateResource(c *Client, target *resource.Info, currentObj runtime.Object,
}
return nil
}
// if --force is applied, attempt to replace the existing resource with the new object.
if force {
obj, err = helper.Replace(target.Namespace, target.Name, true, target.Object)
if err != nil {
return errors.Wrap(err, "failed to replace object")
}
log.Printf("Replaced %q with kind %s for kind %s\n", target.Name, currentObj.GetObjectKind().GroupVersionKind().Kind, kind)
} else {
// send patch to server
obj, err = helper.Patch(target.Namespace, target.Name, patchType, patch, nil)
if err != nil {
// send patch to server
obj, err = helper.Patch(target.Namespace, target.Name, patchType, patch, nil)
if err != nil {
// if --force is applied, attempt to replace the existing resource, that is not patchable with the new object.
if force {
obj, err = helper.Replace(target.Namespace, target.Name, true, target.Object)
if err != nil {
return errors.Wrap(err, "failed to replace object")
}
log.Printf("Replaced %q with kind %s for kind %s\n", target.Name, currentObj.GetObjectKind().GroupVersionKind().Kind, kind)
} else {
return errors.Wrapf(err, "cannot patch %q with kind %s", target.Name, kind)
}
}
target.Refresh(obj, true)
return nil
}

@ -131,9 +131,8 @@ func (s *Storage) DeployedAll(name string) ([]*rspb.Release, error) {
s.Log("getting deployed releases from %q history", name)
ls, err := s.Driver.Query(map[string]string{
"name": name,
"owner": "helm",
"status": "deployed",
"name": name,
"owner": "helm",
})
if err == nil {
return ls, nil

Loading…
Cancel
Save