Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Commit

Permalink
Factor out common bits of execute
Browse files Browse the repository at this point in the history
  • Loading branch information
Sam Broughton committed Dec 22, 2017
1 parent 9e81f31 commit 9884a57
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions cluster/kubernetes/release.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,27 +61,27 @@ func (c *Kubectl) connectArgs() []string {
func (c *Kubectl) execute(logger log.Logger, errs cluster.SyncError) {
defer c.changeSet.clear()

for _, cmd := range cmds {
noNsObjs := c.noNsObjs[cmd]
nsObjs := c.nsObjs[cmd]

if err := c.doCommand(logger, makeMultidoc(noNsObjs), cmd, "--namespace", "default"); err != nil {
for _, obj := range noNsObjs {
r := bytes.NewReader(obj.bytes)
if err := c.doCommand(logger, r, cmd, "--namespace", "default"); err != nil {
errs[obj.id] = err
}
}
f := func(objs []obj, cmd ...string) {
if len(objs) == 0 {
return
}
if err := c.doCommand(logger, makeMultidoc(nsObjs), cmd); err != nil {
for _, obj := range nsObjs {
if err := c.doCommand(logger, makeMultidoc(objs), cmd...); err != nil {
for _, obj := range objs {
r := bytes.NewReader(obj.bytes)
if err := c.doCommand(logger, r, cmd); err != nil {
if err := c.doCommand(logger, r, cmd...); err != nil {
errs[obj.id] = err
}
}
}
}

for _, cmd := range cmds {
noNsObjs := c.noNsObjs[cmd]
nsObjs := c.nsObjs[cmd]

f(noNsObjs, cmd, "--namespace", "default")
f(nsObjs, cmd)
}
}

func (c *Kubectl) doCommand(logger log.Logger, r io.Reader, args ...string) error {
Expand All @@ -106,8 +106,7 @@ func (c *Kubectl) doCommand(logger log.Logger, r io.Reader, args ...string) erro
func makeMultidoc(objs []obj) *bytes.Buffer {
buf := &bytes.Buffer{}
for _, obj := range objs {
fmt.Fprintln(buf, "---")
fmt.Fprintln(buf, obj.bytes)
buf.WriteString("---\n" + string(obj.bytes))
}
return buf
}
Expand Down

0 comments on commit 9884a57

Please sign in to comment.