4
4
package vsphere_test
5
5
6
6
import (
7
- "github.com/juju/juju/provider/vsphere/internal/vsphereclient"
8
7
jc "github.com/juju/testing/checkers"
9
8
"github.com/vmware/govmomi/object"
10
9
"github.com/vmware/govmomi/vim25/mo"
@@ -14,6 +13,7 @@ import (
14
13
"github.com/juju/juju/environs"
15
14
"github.com/juju/juju/environs/context"
16
15
"github.com/juju/juju/provider/common"
16
+ "github.com/juju/juju/provider/vsphere/internal/vsphereclient"
17
17
)
18
18
19
19
type environAvailzonesSuite struct {
@@ -51,14 +51,15 @@ func (s *environAvailzonesSuite) TestAvailabilityZones(c *gc.C) {
51
51
makeResourcePool ("pool-3" , "/DC/host/z2/Resources/child" ),
52
52
makeResourcePool ("pool-4" , "/DC/host/z2/Resources/child/nested" ),
53
53
makeResourcePool ("pool-5" , "/DC/host/z2/Resources/child/nested/other/" ),
54
+ makeResourcePool ("pool-6" , "/DC/host/z2/Other/thing" ),
54
55
},
55
56
}
56
57
57
58
c .Assert (s .env , gc .Implements , new (common.ZonedEnviron ))
58
59
zonedEnviron := s .env .(common.ZonedEnviron )
59
60
zones , err := zonedEnviron .AvailabilityZones (s .callCtx )
60
61
c .Assert (err , jc .ErrorIsNil )
61
- c .Assert (len (zones ), gc .Equals , 5 )
62
+ c .Assert (len (zones ), gc .Equals , 6 )
62
63
// No zones for the empty resource.
63
64
c .Assert (zones [0 ].Name (), gc .Equals , "z1" )
64
65
c .Assert (zones [1 ].Name (), gc .Equals , "z2" )
@@ -67,6 +68,29 @@ func (s *environAvailzonesSuite) TestAvailabilityZones(c *gc.C) {
67
68
c .Assert (zones [4 ].Name (), gc .Equals , "z2/child/nested/other" )
68
69
}
69
70
71
+ func (s * environAvailzonesSuite ) TestAvailabilityZonesInFolder (c * gc.C ) {
72
+ s .client .folders = makeFolders ("/DC/host" )
73
+ s .client .computeResources = []vsphereclient.ComputeResource {
74
+ {Resource : newComputeResource ("z1" ), Path : "/DC/host/Folder/z1" },
75
+ }
76
+ s .client .resourcePools = map [string ][]* object.ResourcePool {
77
+ "/DC/host/Folder/z1/..." : {
78
+ makeResourcePool ("pool-1" , "/DC/host/Folder/z1/Resources" ),
79
+ makeResourcePool ("pool-2" , "/DC/host/Folder/z1/Resources/ResPool1" ),
80
+ makeResourcePool ("pool-3" , "/DC/host/Folder/z1/Resources/ResPool2" ),
81
+ },
82
+ }
83
+
84
+ c .Assert (s .env , gc .Implements , new (common.ZonedEnviron ))
85
+ zonedEnviron := s .env .(common.ZonedEnviron )
86
+ zones , err := zonedEnviron .AvailabilityZones (s .callCtx )
87
+ c .Assert (err , jc .ErrorIsNil )
88
+ c .Assert (len (zones ), gc .Equals , 3 )
89
+ c .Assert (zones [0 ].Name (), gc .Equals , "Folder/z1" )
90
+ c .Assert (zones [1 ].Name (), gc .Equals , "Folder/z1/ResPool1" )
91
+ c .Assert (zones [2 ].Name (), gc .Equals , "Folder/z1/ResPool2" )
92
+ }
93
+
70
94
func (s * environAvailzonesSuite ) TestInstanceAvailabilityZoneNames (c * gc.C ) {
71
95
z1 := newComputeResource ("z1" )
72
96
z2 := newComputeResource ("z2" )
0 commit comments