@@ -142,6 +142,18 @@ func TestGenerateSelfSigned(t *testing.T) {
142142 }()
143143 configModeRetrySleep = time .Millisecond
144144
145+ origCertGenTimeout := certGenTimeout
146+ defer func () {
147+ certGenTimeout = origCertGenTimeout
148+ }()
149+ certGenTimeout = time .Second * 10
150+
151+ origConfigModeTimeout := configModeTimeout
152+ defer func () {
153+ configModeTimeout = origConfigModeTimeout
154+ }()
155+ configModeTimeout = time .Second * 10
156+
145157 tests := []struct {
146158 desc string
147159 wantErr bool
@@ -218,6 +230,87 @@ func TestGenerateSelfSigned(t *testing.T) {
218230 }
219231}
220232
233+ func TestGRPCConfig (t * testing.T ) {
234+ tests := []struct {
235+ desc string
236+ ni * node.Impl
237+ want []string
238+ }{
239+ {
240+ desc : "legacy grpc server config" ,
241+ ni : & node.Impl {
242+ KubeClient : fake .NewSimpleClientset (),
243+ Namespace : "test" ,
244+ Proto : & tpb.Node {
245+ Name : "pod1" ,
246+ Vendor : tpb .Vendor_JUNIPER ,
247+ Config : & tpb.Config {
248+ ConfigFile : "foo" ,
249+ ConfigPath : "/" ,
250+ ConfigData : & tpb.Config_Data {
251+ Data : []byte ("config file data" ),
252+ },
253+ },
254+ },
255+ },
256+ want : []string {
257+ "set system services extension-service request-response grpc ssl hot-reloading" ,
258+ "set system services extension-service request-response grpc ssl use-pki" ,
259+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config services GNMI" ,
260+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config enable true" ,
261+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config port 32767" ,
262+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config transport-security true" ,
263+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config certificate-id grpc-server-cert" ,
264+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config listen-addresses 0.0.0.0" ,
265+ "commit" ,
266+ },
267+ },
268+ {
269+ desc : "new grpc server config" ,
270+ ni : & node.Impl {
271+ KubeClient : fake .NewSimpleClientset (),
272+ Namespace : "test" ,
273+ Proto : & tpb.Node {
274+ Name : "pod1" ,
275+ Vendor : tpb .Vendor_JUNIPER ,
276+ Config : & tpb.Config {
277+ ConfigFile : "foo" ,
278+ ConfigPath : "/" ,
279+ ConfigData : & tpb.Config_Data {
280+ Data : []byte ("config file data" ),
281+ },
282+ },
283+ Labels : map [string ]string {
284+ "legacy_grpc_server_config" : "disabled" ,
285+ },
286+ },
287+ },
288+ want : []string {
289+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config services GNMI" ,
290+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config enable true" ,
291+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config port 32767" ,
292+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config transport-security true" ,
293+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config certificate-id grpc-server-cert" ,
294+ "set openconfig-system:system openconfig-system-grpc:grpc-servers grpc-server grpc-server config listen-addresses 0.0.0.0" ,
295+ "commit" ,
296+ },
297+ },
298+ }
299+ for _ , tt := range tests {
300+ t .Run (tt .desc , func (t * testing.T ) {
301+ nImpl , err := New (tt .ni )
302+ if err != nil {
303+ t .Fatalf ("failed creating kne juniper node" )
304+ }
305+ n , _ := nImpl .(* Node )
306+ got := n .GRPCConfig ()
307+ if diff := cmp .Diff (tt .want , got ); diff != "" {
308+ t .Errorf ("GRPCConfig() returned unexpected diff (-want +got):\n %s" , diff )
309+ }
310+ })
311+ }
312+ }
313+
221314func TestConfigPush (t * testing.T ) {
222315 ki := fake .NewSimpleClientset (& corev1.Pod {
223316 ObjectMeta : metav1.ObjectMeta {
0 commit comments