@@ -70,11 +70,13 @@ func TestNetworkBuilder_BuildTaskNetworkConfiguration(t *testing.T) {
7070
7171func TestNetworkBuilder_Start (t * testing.T ) {
7272 t .Run ("awsvpc" , testNetworkBuilder_StartAWSVPC )
73+ t .Run ("daemon-bridge" , testNetworkBuilder_StartDaemonBridge )
7374}
7475
7576// TestNetworkBuilder_Stop verifies stop workflow for AWSVPC mode.
7677func TestNetworkBuilder_Stop (t * testing.T ) {
7778 t .Run ("awsvpc" , testNetworkBuilder_StopAWSVPC )
79+ t .Run ("daemon-bridge" , testNetworkBuilder_StopDaemonBridge )
7880}
7981
8082// getTestFunc returns a test function that verifies the capability of the networkBuilder
@@ -380,3 +382,66 @@ func getExpectedCalls_StopAWSVPC(
380382 platformAPI .EXPECT ().DeleteDNSConfig (netNS .Name ).Return (nil ).Times (1 ),
381383 platformAPI .EXPECT ().DeleteNetNS (netNS .Path ).Return (nil ).Times (1 ))
382384}
385+
386+ // testNetworkBuilder_StartDaemonBridge verifies that the expected platform API calls
387+ // are made by the network builder while configuring daemon-bridge network namespace.
388+ func testNetworkBuilder_StartDaemonBridge (t * testing.T ) {
389+ ctrl := gomock .NewController (t )
390+ defer ctrl .Finish ()
391+
392+ ctx := context .TODO ()
393+ platformAPI := mock_platform .NewMockAPI (ctrl )
394+ metricsFactory := mock_metrics .NewMockEntryFactory (ctrl )
395+ mockEntry := mock_metrics .NewMockEntry (ctrl )
396+ netBuilder := & networkBuilder {
397+ platformAPI : platformAPI ,
398+ metricsFactory : metricsFactory ,
399+ }
400+
401+ // Create a daemon-bridge network namespace
402+ netNS , _ := tasknetworkconfig .NewNetworkNamespace ("daemon-ns" , "/var/run/netns/daemon-ns" , 0 , nil )
403+ netNS = netNS .WithNetworkMode ("daemon-bridge" )
404+ netNS .KnownState = status .NetworkNone
405+ netNS .DesiredState = status .NetworkReadyPull
406+
407+ t .Run ("daemon-bridge-start" , func (* testing.T ) {
408+ gomock .InOrder (
409+ metricsFactory .EXPECT ().New (metrics .BuildNetworkNamespaceMetricName ).Return (mockEntry ).Times (1 ),
410+ mockEntry .EXPECT ().WithFields (gomock .Any ()).Return (mockEntry ).Times (1 ),
411+ platformAPI .EXPECT ().ConfigureDaemonNetNS (netNS ).Return (nil ).Times (1 ),
412+ mockEntry .EXPECT ().Done (nil ).Times (1 ),
413+ )
414+ netBuilder .Start (ctx , "daemon-bridge" , taskID , netNS )
415+ })
416+ }
417+
418+ // testNetworkBuilder_StopDaemonBridge verifies that the cleanup of daemon-bridge
419+ // network namespace works as expected.
420+ func testNetworkBuilder_StopDaemonBridge (t * testing.T ) {
421+ ctrl := gomock .NewController (t )
422+ defer ctrl .Finish ()
423+
424+ ctx := context .TODO ()
425+ platformAPI := mock_platform .NewMockAPI (ctrl )
426+ metricsFactory := mock_metrics .NewMockEntryFactory (ctrl )
427+ mockEntry := mock_metrics .NewMockEntry (ctrl )
428+ netBuilder := & networkBuilder {
429+ platformAPI : platformAPI ,
430+ metricsFactory : metricsFactory ,
431+ }
432+
433+ // Create a daemon-bridge network namespace
434+ netNS , _ := tasknetworkconfig .NewNetworkNamespace ("daemon-ns" , "/var/run/netns/daemon-ns" , 0 , nil )
435+ netNS = netNS .WithNetworkMode ("daemon-bridge" )
436+ netNS .DesiredState = status .NetworkDeleted
437+
438+ t .Run ("daemon-bridge-stop" , func (* testing.T ) {
439+ gomock .InOrder (
440+ metricsFactory .EXPECT ().New (metrics .DeleteNetworkNamespaceMetricName ).Return (mockEntry ).Times (1 ),
441+ mockEntry .EXPECT ().WithFields (gomock .Any ()).Return (mockEntry ).Times (1 ),
442+ platformAPI .EXPECT ().StopDaemonNetNS (ctx , netNS ).Return (nil ).Times (1 ),
443+ mockEntry .EXPECT ().Done (nil ).Times (1 ),
444+ )
445+ netBuilder .Stop (ctx , "daemon-bridge" , taskID , netNS )
446+ })
447+ }
0 commit comments