@@ -35,6 +35,7 @@ var _ = Describe("Cluster", func() {
35
35
mockClient * csapi.CloudStackClient
36
36
zs * csapi.MockZoneServiceIface
37
37
ds * csapi.MockDomainServiceIface
38
+ as * csapi.MockAccountServiceIface
38
39
ns * csapi.MockNetworkServiceIface
39
40
)
40
41
@@ -43,10 +44,12 @@ var _ = Describe("Cluster", func() {
43
44
mockClient = csapi .NewMockClient (mockCtrl )
44
45
zs = mockClient .Zone .(* csapi.MockZoneServiceIface )
45
46
ds = mockClient .Domain .(* csapi.MockDomainServiceIface )
47
+ as = mockClient .Account .(* csapi.MockAccountServiceIface )
46
48
ns = mockClient .Network .(* csapi.MockNetworkServiceIface )
47
49
client = cloud .NewClientFromCSAPIClient (mockClient )
48
50
dummies .SetDummyVars ()
49
51
dummies .SetDummyDomainAndAccount ()
52
+ dummies .SetDummyCSApiResponse ()
50
53
})
51
54
52
55
AfterEach (func () {
@@ -72,10 +75,13 @@ var _ = Describe("Cluster", func() {
72
75
ContainSubstring ("could not get Zone by ID " + dummies .Zone1 .ID + ": Not found" ))))
73
76
})
74
77
75
- It ("translates Domain to DomainID when Domain is set " , func () {
78
+ It ("resolves domain and account when both are specified " , func () {
76
79
zs .EXPECT ().GetZoneID (dummies .Zone1 .Name ).Return (dummies .Zone1 .ID , 1 , nil )
77
80
zs .EXPECT ().GetZoneByID (dummies .Zone1 .ID ).Return (dummies .CAPCZoneToCSAPIZone (& dummies .Zone1 ), 1 , nil )
78
- ds .EXPECT ().GetDomainID (dummies .CSCluster .Spec .Domain ).Return (dummies .DomainID , 1 , nil )
81
+ ds .EXPECT ().NewListDomainsParams ().Return (dummies .ListDomainsParams )
82
+ ds .EXPECT ().ListDomains (dummies .ListDomainsParams ).Return (dummies .ListDomainsResp , nil )
83
+ as .EXPECT ().NewListAccountsParams ().Return (dummies .ListAccountsParams )
84
+ as .EXPECT ().ListAccounts (dummies .ListAccountsParams ).Return (dummies .ListAccountsResp , nil )
79
85
ns .EXPECT ().GetNetworkByName (dummies .Net1 .Name ).Return (dummies .CAPCNetToCSAPINet (& dummies .Net1 ), 1 , nil )
80
86
81
87
// Limit test to single zone.
@@ -85,5 +91,41 @@ var _ = Describe("Cluster", func() {
85
91
Ω (client .GetOrCreateCluster (dummies .CSCluster )).Should (Succeed ())
86
92
Ω (dummies .CSCluster .Status .DomainID ).Should (Equal (dummies .DomainID ))
87
93
})
94
+
95
+ It ("resolves domain and account when none are specified" , func () {
96
+ zs .EXPECT ().GetZoneID (dummies .Zone1 .Name ).Return (dummies .Zone1 .ID , 1 , nil )
97
+ zs .EXPECT ().GetZoneByID (dummies .Zone1 .ID ).Return (dummies .CAPCZoneToCSAPIZone (& dummies .Zone1 ), 1 , nil )
98
+ ns .EXPECT ().GetNetworkByName (dummies .Net1 .Name ).Return (dummies .CAPCNetToCSAPINet (& dummies .Net1 ), 1 , nil )
99
+
100
+ // Limit test to single zone.
101
+ dummies .CSCluster .Spec .Zones = []capcv1.Zone {dummies .Zone1 }
102
+ dummies .CSCluster .Status .Zones = capcv1.ZoneStatusMap {}
103
+
104
+ dummies .CSCluster .Spec .Domain = ""
105
+ dummies .CSCluster .Spec .Account = ""
106
+
107
+ Ω (client .GetOrCreateCluster (dummies .CSCluster )).Should (Succeed ())
108
+ Ω (dummies .CSCluster .Status .DomainID ).Should (Equal ("" ))
109
+ })
110
+
111
+ It ("fails when only one of domain or account is specified" , func () {
112
+ zs .EXPECT ().GetZoneID (dummies .Zone1 .Name ).Return (dummies .Zone1 .ID , 1 , nil ).AnyTimes ()
113
+ zs .EXPECT ().GetZoneByID (dummies .Zone1 .ID ).Return (dummies .CAPCZoneToCSAPIZone (& dummies .Zone1 ), 1 , nil ).AnyTimes ()
114
+ ns .EXPECT ().GetNetworkByName (dummies .Net1 .Name ).Return (dummies .CAPCNetToCSAPINet (& dummies .Net1 ), 1 , nil ).AnyTimes ()
115
+
116
+ // Limit test to single zone.
117
+ dummies .CSCluster .Spec .Zones = []capcv1.Zone {dummies .Zone1 }
118
+ dummies .CSCluster .Status .Zones = capcv1.ZoneStatusMap {}
119
+
120
+ domainBackup := dummies .CSCluster .Spec .Domain
121
+ dummies .CSCluster .Spec .Domain = ""
122
+
123
+ Ω (client .GetOrCreateCluster (dummies .CSCluster )).ShouldNot (Succeed ())
124
+
125
+ dummies .CSCluster .Spec .Domain = domainBackup
126
+ dummies .CSCluster .Spec .Account = ""
127
+
128
+ Ω (client .GetOrCreateCluster (dummies .CSCluster )).ShouldNot (Succeed ())
129
+ })
88
130
})
89
131
})
0 commit comments