Skip to content

Commit 977de89

Browse files
authored
Fix the template file download issue when CLI is executed first time (vmware-tanzu#776)
Signed-off-by: PremKumar Kalle <pkalle@vmware.com>
1 parent a70be2f commit 977de89

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

pkg/v1/tkg/tkgctl/client.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,17 @@ func New(options Options) (TKGClient, error) { //nolint:gocritic
144144
if err != nil {
145145
return nil, errors.Wrap(err, "unable to ensure prerequisites")
146146
}
147+
tkgConfigFile, err := allClients.TKGConfigPathsClient.GetTKGConfigPath()
148+
if err != nil {
149+
return nil, errors.Wrap(err, "unable to get TKG config file path")
150+
}
151+
// re-initialize the TKG config reader writer after the providers are updated
152+
// as the TKG config file would be updated too.
153+
err = tkgClient.TKGConfigReaderWriter().Init(tkgConfigFile)
154+
if err != nil {
155+
return nil, errors.Wrap(err, "unable to initialize the TKG config reader writer")
156+
}
157+
147158
// Set default BOM name to the config variables to use during template generation
148159
defaultBoMFileName, err := allClients.TKGBomClient.GetDefaultBoMFileName()
149160
if err != nil {

pkg/v1/tkg/tkgctl/client_test.go

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ import (
1717
"github.com/vmware-tanzu/tanzu-framework/pkg/v1/tkg/tkgconfigupdater"
1818
)
1919

20+
type configProvider struct {
21+
Name string `json:"name,omitempty"`
22+
URL string `json:"url,omitempty"`
23+
Type string `json:"type,omitempty"`
24+
}
25+
2026
var _ = Describe("ensureBoMandProvidersPrerequisite", func() {
2127
var (
2228
err error
@@ -69,6 +75,7 @@ var _ = Describe("Unit test for New", func() {
6975
err error
7076
options Options
7177
configDir string
78+
tkgClient TKGClient
7279
)
7380
JustBeforeEach(func() {
7481
configDir, _ = ioutil.TempDir("", "cluster_client_test")
@@ -77,13 +84,27 @@ var _ = Describe("Unit test for New", func() {
7784
ConfigDir: configDir,
7885
ProviderGetter: fakeproviders.FakeProviderGetter(),
7986
}
80-
_, err = New(options)
87+
tkgClient, err = New(options)
8188
})
8289

8390
Context("Create tkgctl client with all clients", func() {
8491
It("should create the tkg client", func() {
8592
Expect(err).ToNot(HaveOccurred())
8693
})
94+
It("should initialize the tkgConfigReaderWriter with providers", func() {
95+
Expect(err).ToNot(HaveOccurred())
96+
tkgctl, ok := tkgClient.(*tkgctl)
97+
Expect(ok).To(BeTrue())
98+
Expect(tkgctl.configDir).To(Equal(configDir))
99+
var userDefinedProviders []configProvider
100+
err = tkgctl.tkgConfigReaderWriter.UnmarshalKey("providers", &userDefinedProviders)
101+
Expect(err).To(BeNil())
102+
Expect(len(userDefinedProviders)).To(Equal(8))
103+
Expect(userDefinedProviders[0].Name).To(Equal("cluster-api"))
104+
Expect(userDefinedProviders[0].Type).To(Equal("CoreProvider"))
105+
Expect(userDefinedProviders[0].URL).To(ContainSubstring("providers/cluster-api/v0.3.10/core-components.yaml"))
106+
107+
})
87108
})
88109

89110
AfterEach(func() {

0 commit comments

Comments
 (0)