20
20
import java .util .List ;
21
21
import java .util .Map ;
22
22
import java .util .Set ;
23
+ import io .envoyproxy .envoy .config .route .v3 .VirtualHost ;
23
24
24
25
/**
25
26
* {@code Snapshot} is a data class that contains an internally consistent snapshot of v3 xDS resources. Snapshots
@@ -43,7 +44,10 @@ public static Snapshot create(
43
44
Iterable <ClusterLoadAssignment > endpoints ,
44
45
Iterable <Listener > listeners ,
45
46
Iterable <RouteConfiguration > routes ,
47
+ Iterable <VirtualHost > virtualHosts ,
46
48
Iterable <Secret > secrets ,
49
+
50
+
47
51
String version ) {
48
52
49
53
return new AutoValue_Snapshot (
@@ -56,7 +60,9 @@ public static Snapshot create(
56
60
SnapshotResources
57
61
.create (generateSnapshotResourceIterable (routes ), version ),
58
62
SnapshotResources
59
- .create (generateSnapshotResourceIterable (secrets ), version ));
63
+ .create (generateSnapshotResourceIterable (secrets ), version ),
64
+ SnapshotResources
65
+ .create (generateSnapshotResourceIterable (virtualHosts ), version ));
60
66
}
61
67
62
68
/**
@@ -81,6 +87,8 @@ public static Snapshot create(
81
87
String listenersVersion ,
82
88
Iterable <RouteConfiguration > routes ,
83
89
String routesVersion ,
90
+ Iterable <VirtualHost > virtualHosts ,
91
+ String virtualHostsVersion ,
84
92
Iterable <Secret > secrets ,
85
93
String secretsVersion ) {
86
94
@@ -94,6 +102,8 @@ public static Snapshot create(
94
102
listenersVersion ),
95
103
SnapshotResources
96
104
.create (generateSnapshotResourceIterable (routes ), routesVersion ),
105
+ SnapshotResources
106
+ .create (generateSnapshotResourceIterable (virtualHosts ), virtualHostsVersion ),
97
107
SnapshotResources .create (generateSnapshotResourceIterable (secrets ),
98
108
secretsVersion ));
99
109
}
@@ -105,7 +115,7 @@ public static Snapshot create(
105
115
*/
106
116
public static Snapshot createEmpty (String version ) {
107
117
return create (Collections .emptySet (), Collections .emptySet (),
108
- Collections .emptySet (), Collections .emptySet (), Collections .emptySet (), version );
118
+ Collections .emptySet (), Collections .emptySet (), Collections .emptySet (), Collections . emptySet (), version );
109
119
}
110
120
111
121
/**
@@ -132,6 +142,7 @@ public static Snapshot createEmpty(String version) {
132
142
* Returns all secret items in the SDS payload.
133
143
*/
134
144
public abstract SnapshotResources <Secret > secrets ();
145
+ public abstract SnapshotResources <VirtualHost > virtualHosts ();
135
146
136
147
/**
137
148
* Asserts that all dependent resources are included in the snapshot. All EDS resources are listed by name in CDS
@@ -189,6 +200,8 @@ public Map<String, VersionedResource<?>> resources(String typeUrl) {
189
200
return (Map ) listeners ().resources ();
190
201
case ROUTE :
191
202
return (Map ) routes ().resources ();
203
+ case VIRTUAL_HOST :
204
+ return (Map ) virtualHosts ().resources ();
192
205
case SECRET :
193
206
return (Map ) secrets ().resources ();
194
207
default :
@@ -211,6 +224,8 @@ public Map<String, VersionedResource<?>> versionedResources(ResourceType resourc
211
224
return (Map ) listeners ().versionedResources ();
212
225
case ROUTE :
213
226
return (Map ) routes ().versionedResources ();
227
+ case VIRTUAL_HOST :
228
+ return (Map ) virtualHosts ().versionedResources ();
214
229
case SECRET :
215
230
return (Map ) secrets ().versionedResources ();
216
231
default :
@@ -266,6 +281,8 @@ public String version(ResourceType resourceType, List<String> resourceNames) {
266
281
return listeners ().version (resourceNames );
267
282
case ROUTE :
268
283
return routes ().version (resourceNames );
284
+ case VIRTUAL_HOST :
285
+ return virtualHosts ().version (resourceNames );
269
286
case SECRET :
270
287
return secrets ().version (resourceNames );
271
288
default :
0 commit comments