(t *testing.T)
| 80 | } |
| 81 | |
| 82 | func Test_discoverAddressRanges(t *testing.T) { |
| 83 | oldNewCmdReporter := newCmdReporter |
| 84 | defer func() { newCmdReporter = oldNewCmdReporter }() |
| 85 | t.Run("public network selected", func(t *testing.T) { |
| 86 | clusterdCtx, clusterSpec, clusterInfo := newTestConfigsWithNetworkSpec( |
| 87 | cephv1.NetworkSpec{ |
| 88 | Provider: cephv1.NetworkProviderMultus, |
| 89 | Selectors: map[cephv1.CephNetworkType]string{ |
| 90 | cephv1.CephNetworkPublic: "macvlan-public", |
| 91 | }, |
| 92 | AddressRanges: nil, // should auto-detect |
| 93 | }) |
| 94 | |
| 95 | t.Run("discover public cidrs", func(t *testing.T) { |
| 96 | cmdReporter := new(mockCmdReporter) |
| 97 | cmdReporter.On("Job") |
| 98 | goodOutput := netStatus("public", "2000::1") + |
| 99 | "\n" + separator() + "\n" + |
| 100 | ipAddrOutput("public", "2000::1/112") |
| 101 | cmdReporter.On("Run", mock.Anything, mock.Anything).Return(goodOutput, "", 0, nil) |
| 102 | newCmdReporter = mockNewCmdReporter(cmdReporter, nil) |
| 103 | |
| 104 | ranges, err := discoverAddressRanges(context.Background(), "rook/ceph:master", clusterdCtx, clusterSpec, clusterInfo, cephv1.CephNetworkPublic) |
| 105 | assert.NoError(t, err) |
| 106 | assert.Equal(t, []string{"2000::/112"}, ranges) |
| 107 | }) |
| 108 | t.Run("discover cluster cidrs", func(t *testing.T) { |
| 109 | cmdReporter := new(mockCmdReporter) |
| 110 | // no cmd reporter methods should be called b/c cluster net is not selected |
| 111 | newCmdReporter = mockNewCmdReporter(cmdReporter, nil) |
| 112 | |
| 113 | ranges, err := discoverAddressRanges(context.Background(), "rook/ceph:master", clusterdCtx, clusterSpec, clusterInfo, cephv1.CephNetworkCluster) |
| 114 | assert.NoError(t, err) |
| 115 | assert.Equal(t, []string{}, ranges) |
| 116 | }) |
| 117 | t.Run("public ip mismatch", func(t *testing.T) { |
| 118 | cmdReporter := new(mockCmdReporter) |
| 119 | cmdReporter.On("Job") |
| 120 | goodOutput := netStatus("public", "192.168.1.1") + |
| 121 | "\n" + separator() + "\n" + |
| 122 | ipAddrOutput("public", "192.168.1.2/24") // IP is one more than above |
| 123 | cmdReporter.On("Run", mock.Anything, mock.Anything).Return(goodOutput, "", 0, nil) |
| 124 | newCmdReporter = mockNewCmdReporter(cmdReporter, nil) |
| 125 | |
| 126 | ranges, err := discoverAddressRanges(context.Background(), "rook/ceph:master", clusterdCtx, clusterSpec, clusterInfo, cephv1.CephNetworkPublic) |
| 127 | assert.Error(t, err) |
| 128 | assert.Equal(t, []string{}, ranges) |
| 129 | }) |
| 130 | t.Run("public ip iface mismatch", func(t *testing.T) { |
| 131 | cmdReporter := new(mockCmdReporter) |
| 132 | cmdReporter.On("Job") |
| 133 | goodOutput := netStatus("public", "192.168.1.1") + |
| 134 | "\n" + separator() + "\n" + |
| 135 | ipAddrOutput("cluster", "192.168.1.1/24") // cluster != public above |
| 136 | cmdReporter.On("Run", mock.Anything, mock.Anything).Return(goodOutput, "", 0, nil) |
| 137 | newCmdReporter = mockNewCmdReporter(cmdReporter, nil) |
| 138 | |
| 139 | ranges, err := discoverAddressRanges(context.Background(), "rook/ceph:master", clusterdCtx, clusterSpec, clusterInfo, cephv1.CephNetworkPublic) |
nothing calls this directly
no test coverage detected