@@ -12,6 +12,7 @@ import (
1212 "path"
1313 "path/filepath"
1414
15+ "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/colorlogger"
1516 "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/filesystem"
1617 "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/package_stemcell/config"
1718 "github.com/cloudfoundry/bosh-windows-stemcell-builder/stembuild/package_stemcell/packager"
@@ -22,11 +23,13 @@ import (
2223)
2324
2425var _ = Describe ("VcenterPackager" , func () {
25-
26- var outputDir string
27- var sourceConfig config.SourceConfig
28- var outputConfig config.OutputConfig
29- var fakeVcenterClient * packagerfakes.FakeIaasClient
26+ var (
27+ outputDir string
28+ sourceConfig config.SourceConfig
29+ outputConfig config.OutputConfig
30+ fakeVcenterClient * packagerfakes.FakeIaasClient
31+ vcenterPackager * packager.VCenterPackager
32+ )
3033
3134 BeforeEach (func () {
3235 // Revert to manual cleanup which fails non-catastrophically on windows
@@ -36,6 +39,14 @@ var _ = Describe("VcenterPackager", func() {
3639 sourceConfig = config.SourceConfig {Password : "password" , URL : "url" , Username : "username" , VmInventoryPath : "path/valid-vm-name" }
3740 outputConfig = config.OutputConfig {Os : "2019" , StemcellVersion : "2019.00" , OutputDir : outputDir }
3841 fakeVcenterClient = & packagerfakes.FakeIaasClient {}
42+ logger := colorlogger .New (0 , false , GinkgoWriter )
43+
44+ vcenterPackager = & packager.VCenterPackager {
45+ SourceConfig : sourceConfig ,
46+ OutputConfig : outputConfig ,
47+ Client : fakeVcenterClient ,
48+ Logger : logger ,
49+ }
3950 })
4051
4152 AfterEach (func () {
@@ -49,20 +60,19 @@ var _ = Describe("VcenterPackager", func() {
4960 Context ("ValidateSourceParameters" , func () {
5061 It ("returns an error if the vCenter url is invalid" , func () {
5162 fakeVcenterClient .ValidateUrlReturns (errors .New ("vcenter client url error" ))
52- packager := packager.VCenterPackager {SourceConfig : sourceConfig , OutputConfig : outputConfig , Client : fakeVcenterClient }
5363
54- err := packager .ValidateSourceParameters ()
64+ err := vcenterPackager .ValidateSourceParameters ()
5565
5666 Expect (err ).To (HaveOccurred ())
5767 Expect (fakeVcenterClient .ValidateUrlCallCount ()).To (Equal (1 ))
5868 Expect (err .Error ()).To (Equal ("vcenter client url error" ))
5969
6070 })
71+
6172 It ("returns an error if the vCenter credentials are not valid" , func () {
6273 fakeVcenterClient .ValidateCredentialsReturns (errors .New ("vcenter client credential error" ))
63- packager := packager.VCenterPackager {SourceConfig : sourceConfig , OutputConfig : outputConfig , Client : fakeVcenterClient }
6474
65- err := packager .ValidateSourceParameters ()
75+ err := vcenterPackager .ValidateSourceParameters ()
6676
6777 Expect (err ).To (HaveOccurred ())
6878 Expect (fakeVcenterClient .ValidateCredentialsCallCount ()).To (Equal (1 ))
@@ -71,42 +81,44 @@ var _ = Describe("VcenterPackager", func() {
7181
7282 It ("returns an error if VM given does not exist " , func () {
7383 fakeVcenterClient .FindVMReturns (errors .New ("vcenter client vm error" ))
74- packager := packager.VCenterPackager {SourceConfig : sourceConfig , OutputConfig : outputConfig , Client : fakeVcenterClient }
7584
76- err := packager .ValidateSourceParameters ()
85+ err := vcenterPackager .ValidateSourceParameters ()
7786
7887 Expect (err ).To (HaveOccurred ())
7988 Expect (fakeVcenterClient .FindVMCallCount ()).To (Equal (1 ))
8089 Expect (err .Error ()).To (Equal ("vcenter client vm error" ))
8190 })
82- It ("returns no error if all source parameters are valid" , func () {
83- packager := packager.VCenterPackager {SourceConfig : sourceConfig , OutputConfig : outputConfig , Client : fakeVcenterClient }
8491
85- err := packager .ValidateSourceParameters ()
92+ It ("returns no error if all source parameters are valid" , func () {
93+ err := vcenterPackager .ValidateSourceParameters ()
8694
8795 Expect (err ).NotTo (HaveOccurred ())
8896 })
8997 })
98+
9099 Context ("ValidateFreeSpace" , func () {
91100 It ("is a NOOP" , func () {
92- packager := packager.VCenterPackager {SourceConfig : sourceConfig , OutputConfig : outputConfig , Client : fakeVcenterClient }
93- err := packager .ValidateFreeSpaceForPackage (& filesystem.OSFileSystem {})
101+ err := vcenterPackager .ValidateFreeSpaceForPackage (& filesystem.OSFileSystem {})
94102
95103 Expect (err ).To (Not (HaveOccurred ()))
96104 })
97105 })
98106
99107 Describe ("Package" , func () {
100- var vcenterPackager * packager.VCenterPackager
101-
102108 AfterEach (func () {
103- os .RemoveAll ("./valid-vm-name" ) //nolint:errcheck
104- os .RemoveAll ("image" ) //nolint:errcheck
109+ ovfName := "./valid-vm-name"
110+ err := os .RemoveAll (ovfName )
111+ if err != nil {
112+ By (fmt .Sprintf ("removing '%s' failed: %s" , ovfName , err ))
113+ }
114+ imageFile := "image"
115+ err = os .RemoveAll (imageFile )
116+ if err != nil {
117+ By (fmt .Sprintf ("removing '%s' failed: %s" , imageFile , err ))
118+ }
105119 })
106120
107121 BeforeEach (func () {
108- vcenterPackager = & packager.VCenterPackager {SourceConfig : sourceConfig , OutputConfig : outputConfig , Client : fakeVcenterClient }
109-
110122 fakeVcenterClient .ExportVMStub = func (vmInventoryPath string , destination string ) error {
111123 vmName := path .Base (vmInventoryPath )
112124 os .Mkdir (filepath .Join (destination , vmName ), 0777 ) //nolint:errcheck
@@ -125,8 +137,8 @@ var _ = Describe("VcenterPackager", func() {
125137 stemcellFilename := packager .StemcellFilename (vcenterPackager .OutputConfig .StemcellVersion , vcenterPackager .OutputConfig .Os )
126138 stemcellFile := filepath .Join (vcenterPackager .OutputConfig .OutputDir , stemcellFilename )
127139 _ , err = os .Stat (stemcellFile )
128-
129140 Expect (err ).NotTo (HaveOccurred ())
141+
130142 var actualStemcellManifestContent string
131143 expectedManifestContent := `---
132144name: bosh-vsphere-esxi-windows2019-go_agent
@@ -145,6 +157,7 @@ stemcell_formats:
145157 gzr , err := gzip .NewReader (fileReader )
146158 Expect (err ).ToNot (HaveOccurred ())
147159 defer gzr .Close () //nolint:errcheck
160+
148161 tarfileReader := tar .NewReader (gzr )
149162 count := 0
150163
@@ -173,7 +186,6 @@ stemcell_formats:
173186 expectedManifestContent = fmt .Sprintf (expectedManifestContent , actualSha1 .Sum (nil ))
174187
175188 default :
176-
177189 Fail (fmt .Sprintf ("Found unknown file: %s" , filepath .Base (header .Name )))
178190 }
179191 }
@@ -229,9 +241,8 @@ stemcell_formats:
229241 })
230242
231243 It ("Returns a error message if exporting the VM fails" , func () {
232- packager := packager.VCenterPackager {SourceConfig : sourceConfig , OutputConfig : outputConfig , Client : fakeVcenterClient }
233244 fakeVcenterClient .ExportVMReturns (errors .New ("some client error" ))
234- err := packager .Package ()
245+ err := vcenterPackager .Package ()
235246
236247 Expect (fakeVcenterClient .ExportVMCallCount ()).To (Equal (1 ))
237248 vmPath , _ := fakeVcenterClient .ExportVMArgsForCall (0 )
0 commit comments