35
35
)
36
36
)
37
37
38
+ peering_mock = """
39
+ {
40
+ "GatewayPeeringStatus": [
41
+ {
42
+ "Address": "127.0.0.1",
43
+ "Name": "rate-limit",
44
+ "PendingUpdates": 0,
45
+ "ReplicationOffset": 170111082,
46
+ "LinkStatus": "ok",
47
+ "Primary": "yes"
48
+ }
49
+ ]
50
+ }
51
+ """
52
+ log_target_mock = """
53
+ {
54
+ "_links" : {
55
+ "self" : {"href" : "/mgmt/status/default/LogTargetStatus"},
56
+ "doc" : {"href" : "/mgmt/docs/status/LogTargetStatus"}},
57
+ "LogTargetStatus" : {
58
+ "LogTarget" : {"value": "default-log",
59
+ "href" : "/mgmt/config/default/LogTarget/default-log"},
60
+ "Status" : "active",
61
+ "EventsProcessed" : 210938,
62
+ "EventsDropped" : 0,
63
+ "EventsPending" : 2,
64
+ "ErrorInfo" : "none",
65
+ "RequestedMemory" : 16}}
66
+ """
67
+
68
+ v6 = '{"APIConnectGatewayService":{"V5CompatibilityMode":"off"}}'
38
69
39
70
40
71
def test_check_nosettings ():
@@ -99,16 +130,28 @@ def test_trawler_gauge_additional_labels(mocker, caplog):
99
130
# Lookup values from prometheus client
100
131
assert prometheus_client .REGISTRY .get_sample_value ('labels_add_additional' , labels = {"pod" : "pod_name" , "group" : "labels" }) == 1
101
132
133
+
102
134
def test_datapower_fishing (mocker ):
103
135
""" test the pod finding """
104
136
mocker .patch ('kubernetes.config.load_incluster_config' )
105
137
mocker .patch ('kubernetes.client.CoreV1Api.list_pod_for_all_namespaces' ,
106
138
return_value = kubernetes .client .V1PodList (items = [fake_pod ])
107
139
)
108
140
mocker .patch ('datapower_net.DataPowerNet.load_password_from_secret' , return_value = 'password' )
109
- new_net = datapower_net .DataPowerNet ({}, boaty )
110
- new_net .fish ()
111
- assert config .load_incluster_config .called
141
+ with requests_mock .mock () as m :
142
+ m .get ('https://127.0.0.1:5554/mgmt/config/apiconnect/APIConnectGatewayService/default' , text = v6 )
143
+ m .get ('https://127.0.0.1:5554/mgmt/config/apiconnect/Statistics' , text = statistics_enabled )
144
+
145
+ m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/GatewayPeeringStatus' , text = peering_mock )
146
+ m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/AnalyticsEndpointStatus' , text = "" )
147
+ m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/TCPSummary' , text = "" )
148
+ m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/LogTargetStatus' , text = log_target_mock )
149
+ m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/ObjectStatus' , text = "" )
150
+ m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/APIDocumentCachingSummary' , text = "" )
151
+ m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/HTTPTransactions2' , text = "" )
152
+ new_net = datapower_net .DataPowerNet ({}, boaty )
153
+ new_net .fish ()
154
+ assert config .load_incluster_config .called
112
155
113
156
114
157
def test_datapower_fishing_error (mocker , caplog ):
@@ -131,22 +174,7 @@ def test_datapower_instance(mocker, caplog):
131
174
assert dp .ip == '127.0.0.1'
132
175
assert dp .v5c
133
176
# Mock data
134
- mock_data = """
135
- {
136
- "_links" : {
137
- "self" : {"href" : "/mgmt/status/default/LogTargetStatus"},
138
- "doc" : {"href" : "/mgmt/docs/status/LogTargetStatus"}},
139
- "LogTargetStatus" : {
140
- "LogTarget" : {"value": "default-log",
141
- "href" : "/mgmt/config/default/LogTarget/default-log"},
142
- "Status" : "active",
143
- "EventsProcessed" : 210938,
144
- "EventsDropped" : 0,
145
- "EventsPending" : 2,
146
- "ErrorInfo" : "none",
147
- "RequestedMemory" : 16}}
148
- """
149
- m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/LogTargetStatus' , text = mock_data )
177
+ m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/LogTargetStatus' , text = log_target_mock )
150
178
m .get ('/mgmt/config/apiconnect/Statistics' , text = statistics_enabled )
151
179
152
180
dp .fetch_data ('LogTargetStatus' , 'test' )
@@ -162,6 +190,7 @@ def test_datapower_instance(mocker, caplog):
162
190
'datapower_test_EventsPending' ,
163
191
labels = {"pod" : "myDp" , "namespace" : "namespace" }) == 2
164
192
193
+
165
194
def test_datapower_peering (mocker , caplog ):
166
195
caplog .set_level (logging .INFO )
167
196
with requests_mock .mock () as m :
@@ -191,9 +220,8 @@ def test_datapower_peering(mocker, caplog):
191
220
192
221
m .get ('https://127.0.0.1:5554/mgmt/status/apiconnect/GatewayPeeringStatus' , text = mock_data )
193
222
194
-
195
223
dp .gateway_peering_status ()
196
- assert 'Creating gauge ' in caplog . text
224
+
197
225
# Lookup values from prometheus client
198
226
assert prometheus_client .REGISTRY .get_sample_value (
199
227
'datapower_gateway_peering_primary_info' ,
0 commit comments