@@ -49,28 +49,35 @@ func (s) TestServiceWatch_ListenerPointsToNewRouteConfiguration(t *testing.T) {
49
49
mgmtServer , lisCh , routeCfgCh , bc := setupManagementServerForTest (t , nodeID )
50
50
51
51
// Configure resources on the management server.
52
- listeners := []* v3listenerpb.Listener {e2e .DefaultClientListener (defaultTestServiceName , defaultTestRouteConfigName )}
53
- routes := []* v3routepb.RouteConfiguration {e2e .DefaultRouteConfig (defaultTestRouteConfigName , defaultTestServiceName , defaultTestClusterName )}
54
- configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , listeners , routes )
52
+ resources := e2e .DefaultClientResources (e2e.ResourceParams {
53
+ DialTarget : defaultTestServiceName ,
54
+ NodeID : nodeID ,
55
+ Host : defaultTestHostname ,
56
+ Port : defaultTestPort [0 ],
57
+ SecLevel : e2e .SecurityLevelNone ,
58
+ })
59
+ if err := mgmtServer .Update (ctx , resources ); err != nil {
60
+ t .Fatal (err )
61
+ }
55
62
56
63
stateCh , _ , _ := buildResolverForTarget (t , resolver.Target {URL : * testutils .MustParseURL ("xds:///" + defaultTestServiceName )}, bc )
57
64
58
65
// Verify initial update from the resolver.
59
66
waitForResourceNames (ctx , t , lisCh , []string {defaultTestServiceName })
60
- waitForResourceNames (ctx , t , routeCfgCh , []string {defaultTestRouteConfigName })
61
- verifyUpdateFromResolver (ctx , t , stateCh , wantDefaultServiceConfig )
67
+ waitForResourceNames (ctx , t , routeCfgCh , []string {resources . Routes [ 0 ]. Name })
68
+ verifyUpdateFromResolver (ctx , t , stateCh , wantServiceConfig ( resources . Clusters [ 0 ]. Name ) )
62
69
63
70
// Update the listener resource to point to a new route configuration name.
64
71
// Leave the old route configuration resource unchanged.
65
72
newTestRouteConfigName := defaultTestRouteConfigName + "-new"
66
- listeners = []* v3listenerpb.Listener {e2e .DefaultClientListener (defaultTestServiceName , newTestRouteConfigName )}
67
- configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , listeners , routes )
73
+ resources . Listeners = []* v3listenerpb.Listener {e2e .DefaultClientListener (defaultTestServiceName , newTestRouteConfigName )}
74
+ configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , resources . Listeners , resources . Routes )
68
75
69
76
// Verify that the new route configuration resource is requested.
70
77
waitForResourceNames (ctx , t , routeCfgCh , []string {newTestRouteConfigName })
71
78
72
79
// Update the old route configuration resource by adding a new route.
73
- routes [0 ].VirtualHosts [0 ].Routes = append (routes [0 ].VirtualHosts [0 ].Routes , & v3routepb.Route {
80
+ resources . Routes [0 ].VirtualHosts [0 ].Routes = append (resources . Routes [0 ].VirtualHosts [0 ].Routes , & v3routepb.Route {
74
81
Match : & v3routepb.RouteMatch {
75
82
PathSpecifier : & v3routepb.RouteMatch_Prefix {Prefix : "/foo/bar" },
76
83
CaseSensitive : & wrapperspb.BoolValue {Value : false },
@@ -81,17 +88,17 @@ func (s) TestServiceWatch_ListenerPointsToNewRouteConfiguration(t *testing.T) {
81
88
},
82
89
},
83
90
})
84
- configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , listeners , routes )
91
+ configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , resources . Listeners , resources . Routes )
85
92
86
93
// Wait for no update from the resolver.
87
94
verifyNoUpdateFromResolver (ctx , t , stateCh )
88
95
89
96
// Update the management server with the new route configuration resource.
90
- routes = append (routes , e2e .DefaultRouteConfig (newTestRouteConfigName , defaultTestServiceName , defaultTestClusterName ))
91
- configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , listeners , routes )
97
+ resources . Routes = append (resources . Routes , e2e .DefaultRouteConfig (newTestRouteConfigName , defaultTestServiceName , resources . Clusters [ 0 ]. Name ))
98
+ configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , resources . Listeners , resources . Routes )
92
99
93
100
// Ensure update from the resolver.
94
- verifyUpdateFromResolver (ctx , t , stateCh , wantDefaultServiceConfig )
101
+ verifyUpdateFromResolver (ctx , t , stateCh , wantServiceConfig ( resources . Clusters [ 0 ]. Name ) )
95
102
}
96
103
97
104
// Tests the case where the listener resource changes to contain an inline route
@@ -106,22 +113,28 @@ func (s) TestServiceWatch_ListenerPointsToInlineRouteConfiguration(t *testing.T)
106
113
mgmtServer , lisCh , routeCfgCh , bc := setupManagementServerForTest (t , nodeID )
107
114
108
115
// Configure resources on the management server.
109
- listeners := []* v3listenerpb.Listener {e2e .DefaultClientListener (defaultTestServiceName , defaultTestRouteConfigName )}
110
- routes := []* v3routepb.RouteConfiguration {e2e .DefaultRouteConfig (defaultTestRouteConfigName , defaultTestServiceName , defaultTestClusterName )}
111
- configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , listeners , routes )
112
-
116
+ resources := e2e .DefaultClientResources (e2e.ResourceParams {
117
+ DialTarget : defaultTestServiceName ,
118
+ NodeID : nodeID ,
119
+ Host : defaultTestHostname ,
120
+ Port : defaultTestPort [0 ],
121
+ SecLevel : e2e .SecurityLevelNone ,
122
+ })
123
+ if err := mgmtServer .Update (ctx , resources ); err != nil {
124
+ t .Fatal (err )
125
+ }
113
126
stateCh , _ , _ := buildResolverForTarget (t , resolver.Target {URL : * testutils .MustParseURL ("xds:///" + defaultTestServiceName )}, bc )
114
127
115
128
// Verify initial update from the resolver.
116
129
waitForResourceNames (ctx , t , lisCh , []string {defaultTestServiceName })
117
- waitForResourceNames (ctx , t , routeCfgCh , []string {defaultTestRouteConfigName })
118
- verifyUpdateFromResolver (ctx , t , stateCh , wantDefaultServiceConfig )
130
+ waitForResourceNames (ctx , t , routeCfgCh , []string {resources . Routes [ 0 ]. Name })
131
+ verifyUpdateFromResolver (ctx , t , stateCh , wantServiceConfig ( resources . Clusters [ 0 ]. Name ) )
119
132
120
133
// Update listener to contain an inline route configuration.
121
134
hcm := testutils .MarshalAny (t , & v3httppb.HttpConnectionManager {
122
135
RouteSpecifier : & v3httppb.HttpConnectionManager_RouteConfig {
123
136
RouteConfig : & v3routepb.RouteConfiguration {
124
- Name : defaultTestRouteConfigName ,
137
+ Name : resources . Routes [ 0 ]. Name ,
125
138
VirtualHosts : []* v3routepb.VirtualHost {{
126
139
Domains : []string {defaultTestServiceName },
127
140
Routes : []* v3routepb.Route {{
@@ -130,7 +143,7 @@ func (s) TestServiceWatch_ListenerPointsToInlineRouteConfiguration(t *testing.T)
130
143
},
131
144
Action : & v3routepb.Route_Route {
132
145
Route : & v3routepb.RouteAction {
133
- ClusterSpecifier : & v3routepb.RouteAction_Cluster {Cluster : defaultTestClusterName },
146
+ ClusterSpecifier : & v3routepb.RouteAction_Cluster {Cluster : resources . Clusters [ 0 ]. Name },
134
147
},
135
148
},
136
149
}},
@@ -139,7 +152,7 @@ func (s) TestServiceWatch_ListenerPointsToInlineRouteConfiguration(t *testing.T)
139
152
},
140
153
HttpFilters : []* v3httppb.HttpFilter {e2e .HTTPFilter ("router" , & v3routerpb.Router {})},
141
154
})
142
- listeners = []* v3listenerpb.Listener {{
155
+ resources . Listeners = []* v3listenerpb.Listener {{
143
156
Name : defaultTestServiceName ,
144
157
ApiListener : & v3listenerpb.ApiListener {ApiListener : hcm },
145
158
FilterChains : []* v3listenerpb.FilterChain {{
@@ -150,19 +163,19 @@ func (s) TestServiceWatch_ListenerPointsToInlineRouteConfiguration(t *testing.T)
150
163
}},
151
164
}},
152
165
}}
153
- configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , listeners , nil )
166
+ configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , resources . Listeners , nil )
154
167
155
168
// Verify that the old route configuration is not requested anymore.
156
169
waitForResourceNames (ctx , t , routeCfgCh , []string {})
157
- verifyUpdateFromResolver (ctx , t , stateCh , wantDefaultServiceConfig )
170
+ verifyUpdateFromResolver (ctx , t , stateCh , wantServiceConfig ( resources . Clusters [ 0 ]. Name ) )
158
171
159
172
// Update listener back to contain a route configuration name.
160
- listeners = []* v3listenerpb.Listener {e2e .DefaultClientListener (defaultTestServiceName , defaultTestRouteConfigName )}
161
- configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , listeners , routes )
173
+ resources . Listeners = []* v3listenerpb.Listener {e2e .DefaultClientListener (defaultTestServiceName , resources . Routes [ 0 ]. Name )}
174
+ configureResourcesOnManagementServer (ctx , t , mgmtServer , nodeID , resources . Listeners , resources . Routes )
162
175
163
176
// Verify that that route configuration resource is requested.
164
- waitForResourceNames (ctx , t , routeCfgCh , []string {defaultTestRouteConfigName })
177
+ waitForResourceNames (ctx , t , routeCfgCh , []string {resources . Routes [ 0 ]. Name })
165
178
166
179
// Verify that appropriate SC is pushed on the channel.
167
- verifyUpdateFromResolver (ctx , t , stateCh , wantDefaultServiceConfig )
180
+ verifyUpdateFromResolver (ctx , t , stateCh , wantServiceConfig ( resources . Clusters [ 0 ]. Name ) )
168
181
}
0 commit comments