Skip to content

Commit d9465f4

Browse files
author
Michael Sauter
authored
Merge pull request #220 from opendevstack/experiment/parallel-diff
Export resources and process templates concurrently
2 parents 73dfc8c + 58dce9c commit d9465f4

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ require (
1313
github.com/stretchr/testify v1.3.0 // indirect
1414
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
1515
golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac
16+
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208
1617
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 // indirect
1718
gopkg.in/yaml.v2 v2.2.1 // indirect
1819
)

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP
2525
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
2626
golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac h1:7d7lG9fHOLdL6jZPtnV4LpI41SbohIJ1Atq7U991dMg=
2727
golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
28+
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA=
29+
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
2830
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 h1:4y9KwBHBgBNwDbtu44R5o1fdOCQUEXhbk/P4A9WmJq0=
2931
golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3032
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=

pkg/commands/diff.go

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
"github.com/opendevstack/tailor/pkg/cli"
1212
"github.com/opendevstack/tailor/pkg/openshift"
13+
"golang.org/x/sync/errgroup"
1314
)
1415

1516
// Diff prints the drift between desired and current state to STDOUT.
@@ -57,17 +58,31 @@ func calculateChangeset(w io.Writer, compareOptions *cli.CompareOptions, ocClien
5758
return updateRequired, &openshift.Changeset{}, err
5859
}
5960

60-
templateBasedList, err := assembleTemplateBasedResourceList(
61-
filter,
62-
compareOptions,
63-
ocClient,
64-
)
65-
if err != nil {
66-
return updateRequired, &openshift.Changeset{}, err
67-
}
61+
var templateBasedList *openshift.ResourceList
62+
var platformBasedList *openshift.ResourceList
6863

69-
platformBasedList, err := assemblePlatformBasedResourceList(filter, compareOptions, ocClient)
70-
if err != nil {
64+
eg := new(errgroup.Group)
65+
eg.Go(func() error {
66+
l, err := assembleTemplateBasedResourceList(
67+
filter,
68+
compareOptions,
69+
ocClient,
70+
)
71+
if err != nil {
72+
return err
73+
}
74+
templateBasedList = l
75+
return nil
76+
})
77+
eg.Go(func() error {
78+
l, err := assemblePlatformBasedResourceList(filter, compareOptions, ocClient)
79+
if err != nil {
80+
return err
81+
}
82+
platformBasedList = l
83+
return nil
84+
})
85+
if err := eg.Wait(); err != nil {
7186
return updateRequired, &openshift.Changeset{}, err
7287
}
7388

0 commit comments

Comments
 (0)