Skip to content

Commit b37ab1b

Browse files
committed
Add tests for Vsphere AZs in a folder
1 parent 6b39c41 commit b37ab1b

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

provider/vsphere/environ_availzones_test.go

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package vsphere_test
55

66
import (
7-
"github.com/juju/juju/provider/vsphere/internal/vsphereclient"
87
jc "github.com/juju/testing/checkers"
98
"github.com/vmware/govmomi/object"
109
"github.com/vmware/govmomi/vim25/mo"
@@ -14,6 +13,7 @@ import (
1413
"github.com/juju/juju/environs"
1514
"github.com/juju/juju/environs/context"
1615
"github.com/juju/juju/provider/common"
16+
"github.com/juju/juju/provider/vsphere/internal/vsphereclient"
1717
)
1818

1919
type environAvailzonesSuite struct {
@@ -51,14 +51,15 @@ func (s *environAvailzonesSuite) TestAvailabilityZones(c *gc.C) {
5151
makeResourcePool("pool-3", "/DC/host/z2/Resources/child"),
5252
makeResourcePool("pool-4", "/DC/host/z2/Resources/child/nested"),
5353
makeResourcePool("pool-5", "/DC/host/z2/Resources/child/nested/other/"),
54+
makeResourcePool("pool-6", "/DC/host/z2/Other/thing"),
5455
},
5556
}
5657

5758
c.Assert(s.env, gc.Implements, new(common.ZonedEnviron))
5859
zonedEnviron := s.env.(common.ZonedEnviron)
5960
zones, err := zonedEnviron.AvailabilityZones(s.callCtx)
6061
c.Assert(err, jc.ErrorIsNil)
61-
c.Assert(len(zones), gc.Equals, 5)
62+
c.Assert(len(zones), gc.Equals, 6)
6263
// No zones for the empty resource.
6364
c.Assert(zones[0].Name(), gc.Equals, "z1")
6465
c.Assert(zones[1].Name(), gc.Equals, "z2")
@@ -67,6 +68,29 @@ func (s *environAvailzonesSuite) TestAvailabilityZones(c *gc.C) {
6768
c.Assert(zones[4].Name(), gc.Equals, "z2/child/nested/other")
6869
}
6970

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+
7094
func (s *environAvailzonesSuite) TestInstanceAvailabilityZoneNames(c *gc.C) {
7195
z1 := newComputeResource("z1")
7296
z2 := newComputeResource("z2")

0 commit comments

Comments
 (0)