blob: e764088a615432fae980e54daac9e803691b5c1f [file] [log] [blame]
Srikanth Vavilapalli21d14752016-09-02 01:37:34 +00001# (C) Copyright Broadcom Corporation 2016
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5#
6# You may obtain a copy of the License at
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15from broadviewserializerbase import BroadViewSerializerBase
16from broadview_lib.bst.bst_parser import BSTParser, ReportTypes
17import json
18import six
19import uuid
20import unittest
21import datetime
22import time
23
24
25class BSTToCeilometer(BroadViewSerializerBase):
26 '''
27 Class that converts BST object model to OpeStack Ceilometer metrics.
28 See broadview-collector/doc/bst_to_monasca_serializer.md for documentation
29 '''
30
31 def __init__(self):
32 pass
33
34 def __serializeToJSON(self, host, report, data):
35 ret = []
36 #timestamp = time.mktime(data.getTimestamp()) * 1000
37 timestamp=time.strftime('%Y-%m-%dT%H:%M:%SZ',data.getTimestamp())
38 asic = data.getASICId()
39 x = data.getDeviceData()
40
41 if x:
42 m = {}
43 m["event_type"] = "broadview.bst." + repr(x)
44 m["timestamp"] = timestamp
45 m['message_id'] = six.text_type(uuid.uuid4())
46 m['priority'] = 'INFO'
47 m["payload"] = {}
48 m["payload"]["asic-id"] = asic
49 m["payload"]["bv-agent"] = host
50 m["payload"]["value"] = x.getValue()
51 ret.append(m)
52
53 d = data.getIngressPortPriorityGroup()
54 for x in d:
55 for y in x:
56 m = {}
57 m["event_type"] = "broadview.bst." + repr(x)
58 m["timestamp"] = timestamp
59 m['message_id'] = six.text_type(uuid.uuid4())
60 m['priority'] = 'INFO'
61 m["payload"] = {}
62 m["payload"]["asic-id"] = asic
63 m["payload"]["bv-agent"] = host
64 m["payload"]["port"] = y.getPort()
65 m["payload"]["priority-group"] = y.getPriorityGroup()
66 m["payload"]["stat"] = "um-share-buffer-count"
67 m["payload"]["value"] = y.getUmShareBufferCount()
68 ret.append(m)
69
70 m = {}
71 m["event_type"] = "broadview.bst." + repr(x)
72 m["timestamp"] = timestamp
73 m['message_id'] = six.text_type(uuid.uuid4())
74 m['priority'] = 'INFO'
75 m["payload"] = {}
76 m["payload"]["asic-id"] = asic
77 m["payload"]["bv-agent"] = host
78 m["payload"]["port"] = y.getPort()
79 m["payload"]["priority-group"] = y.getPriorityGroup()
80 m["payload"]["stat"] = "um-headroom-buffer-count"
81 m["payload"]["value"] = y.getUmHeadroomBufferCount()
82 ret.append(m)
83
84 d = data.getIngressPortServicePool()
85 for x in d:
86 for y in x:
87 m = {}
88 m["event_type"] = "broadview.bst." + repr(x)
89 m["timestamp"] = timestamp
90 m['message_id'] = six.text_type(uuid.uuid4())
91 m['priority'] = 'INFO'
92 m["payload"] = {}
93 m["payload"]["asic-id"] = asic
94 m["payload"]["bv-agent"] = host
95 m["payload"]["port"] = y.getPort()
96 m["payload"]["service-pool"] = y.getServicePool()
97 m["payload"]["stat"] = "um-share-buffer-count"
98 m["payload"]["value"] = y.getUmShareBufferCount()
99 ret.append(m)
100
101 d = data.getIngressServicePool()
102 for x in d:
103 for y in x:
104 m = {}
105 m["event_type"] = "broadview.bst." + repr(x)
106 m["timestamp"] = timestamp
107 m['message_id'] = six.text_type(uuid.uuid4())
108 m['priority'] = 'INFO'
109 m["payload"] = {}
110 m["payload"]["asic-id"] = asic
111 m["payload"]["bv-agent"] = host
112 m["payload"]["service-pool"] = y.getServicePool()
113 m["payload"]["stat"] = "um-share-buffer-count"
114 m["payload"]["value"] = y.getUmShareBufferCount()
115 ret.append(m)
116
117 d = data.getEgressCPUQueue()
118 for x in d:
119 for y in x:
120 m = {}
121 m["event_type"] = "broadview.bst." + repr(x)
122 m["timestamp"] = timestamp
123 m['message_id'] = six.text_type(uuid.uuid4())
124 m['priority'] = 'INFO'
125 m["payload"] = {}
126 m["payload"]["asic-id"] = asic
127 m["payload"]["bv-agent"] = host
128 m["payload"]["queue"] = y.getQueue()
129 m["payload"]["stat"] = "cpu-buffer-count"
130 m["payload"]["value"] = y.getCPUBufferCount()
131 ret.append(m)
132
133 m = {}
134 m["event_type"] = "broadview.bst." + repr(x)
135 m["timestamp"] = timestamp
136 m['message_id'] = six.text_type(uuid.uuid4())
137 m['priority'] = 'INFO'
138 m["payload"] = {}
139 m["payload"]["asic-id"] = asic
140 m["payload"]["bv-agent"] = host
141 m["payload"]["queue"] = y.getQueue()
142 m["payload"]["stat"] = "cpu-queue-entries"
143 m["payload"]["value"] = y.getCPUQueueEntries()
144 ret.append(m)
145
146 d = data.getEgressMcQueue()
147 for x in d:
148 for y in x:
149 m = {}
150 m["event_type"] = "broadview.bst." + repr(x)
151 m["timestamp"] = timestamp
152 m['message_id'] = six.text_type(uuid.uuid4())
153 m['priority'] = 'INFO'
154 m["payload"] = {}
155 m["payload"]["asic-id"] = asic
156 m["payload"]["bv-agent"] = host
157 m["payload"]["port"] = y.getPort()
158 m["payload"]["queue"] = y.getQueue()
159 m["payload"]["stat"] = "mc-buffer-count"
160 m["payload"]["value"] = y.getMCBufferCount()
161 ret.append(m)
162
163 m = {}
164 m["event_type"] = "broadview.bst." + repr(x)
165 m["timestamp"] = timestamp
166 m['message_id'] = six.text_type(uuid.uuid4())
167 m['priority'] = 'INFO'
168 m["payload"] = {}
169 m["payload"]["asic-id"] = asic
170 m["payload"]["bv-agent"] = host
171 m["payload"]["port"] = y.getPort()
172 m["payload"]["queue"] = y.getQueue()
173 m["payload"]["stat"] = "mc-queue-entries"
174 m["payload"]["value"] = y.getMCQueueEntries()
175 ret.append(m)
176
177 d = data.getEgressPortServicePool()
178 for x in d:
179 for y in x:
180 m = {}
181 m["event_type"] = "broadview.bst." + repr(x)
182 m["timestamp"] = timestamp
183 m['message_id'] = six.text_type(uuid.uuid4())
184 m['priority'] = 'INFO'
185 m["payload"] = {}
186 m["payload"]["asic-id"] = asic
187 m["payload"]["bv-agent"] = host
188 m["payload"]["port"] = y.getPort()
189 m["payload"]["service-pool"] = y.getServicePool()
190 m["payload"]["stat"] = "um-share-buffer-count"
191 m["payload"]["value"] = y.getUmShareBufferCount()
192 ret.append(m)
193
194 m = {}
195 m["event_type"] = "broadview.bst." + repr(x)
196 m["timestamp"] = timestamp
197 m['message_id'] = six.text_type(uuid.uuid4())
198 m['priority'] = 'INFO'
199 m["payload"] = {}
200 m["payload"]["asic-id"] = asic
201 m["payload"]["bv-agent"] = host
202 m["payload"]["port"] = y.getPort()
203 m["payload"]["service-pool"] = y.getServicePool()
204 m["payload"]["stat"] = "mc-share-buffer-count"
205 m["payload"]["value"] = y.getMCShareBufferCount()
206 ret.append(m)
207
208 m = {}
209 m["event_type"] = "broadview.bst." + repr(x)
210 m["timestamp"] = timestamp
211 m['message_id'] = six.text_type(uuid.uuid4())
212 m['priority'] = 'INFO'
213 m["payload"] = {}
214 m["payload"]["asic-id"] = asic
215 m["payload"]["bv-agent"] = host
216 m["payload"]["port"] = y.getPort()
217 m["payload"]["service-pool"] = y.getServicePool()
218 m["payload"]["stat"] = "mc-share-queue-entries"
219 m["payload"]["value"] = y.getMCShareQueueEntries()
220 ret.append(m)
221
222 d = data.getEgressRQEQueue()
223 for x in d:
224 for y in x:
225 m = {}
226 m["event_type"] = "broadview.bst." + repr(x)
227 m["timestamp"] = timestamp
228 m['message_id'] = six.text_type(uuid.uuid4())
229 m['priority'] = 'INFO'
230 m["payload"] = {}
231 m["payload"]["asic-id"] = asic
232 m["payload"]["bv-agent"] = host
233 m["payload"]["queue"] = y.getQueue()
234 m["payload"]["stat"] = "rqe-buffer-count"
235 m["payload"]["value"] = y.getRQEBufferCount()
236 ret.append(m)
237
238 m = {}
239 m["event_type"] = "broadview.bst." + repr(x)
240 m["timestamp"] = timestamp
241 m['message_id'] = six.text_type(uuid.uuid4())
242 m['priority'] = 'INFO'
243 m["payload"] = {}
244 m["payload"]["asic-id"] = asic
245 m["payload"]["bv-agent"] = host
246 m["payload"]["queue"] = y.getQueue()
247 m["payload"]["stat"] = "rqe-queue-entries"
248 m["payload"]["value"] = y.getRQEQueueEntries()
249 ret.append(m)
250
251 d = data.getEgressServicePool()
252 for x in d:
253 for y in x:
254 m = {}
255 m["event_type"] = "broadview.bst." + repr(x)
256 m["timestamp"] = timestamp
257 m['message_id'] = six.text_type(uuid.uuid4())
258 m['priority'] = 'INFO'
259 m["payload"] = {}
260 m["payload"]["asic-id"] = asic
261 m["payload"]["bv-agent"] = host
262 m["payload"]["service-pool"] = y.getServicePool()
263 m["payload"]["stat"] = "um-share-buffer-count"
264 m["payload"]["value"] = y.getUmShareBufferCount()
265 ret.append(m)
266
267 m = {}
268 m["event_type"] = "broadview.bst." + repr(x)
269 m["timestamp"] = timestamp
270 m['message_id'] = six.text_type(uuid.uuid4())
271 m['priority'] = 'INFO'
272 m["payload"] = {}
273 m["payload"]["asic-id"] = asic
274 m["payload"]["bv-agent"] = host
275 m["payload"]["service-pool"] = y.getServicePool()
276 m["payload"]["stat"] = "mc-share-buffer-count"
277 m["payload"]["value"] = y.getMCShareBufferCount()
278 ret.append(m)
279
280 m = {}
281 m["event_type"] = "broadview.bst." + repr(x)
282 m["timestamp"] = timestamp
283 m['message_id'] = six.text_type(uuid.uuid4())
284 m['priority'] = 'INFO'
285 m["payload"] = {}
286 m["payload"]["asic-id"] = asic
287 m["payload"]["bv-agent"] = host
288 m["payload"]["service-pool"] = y.getServicePool()
289 m["payload"]["stat"] = "mc-share-queue-entries"
290 m["payload"]["value"] = y.getMCShareQueueEntries()
291 ret.append(m)
292
293 d = data.getEgressUcQueue()
294 for x in d:
295 for y in x:
296 m = {}
297 m["event_type"] = "broadview.bst." + repr(x)
298 m["timestamp"] = timestamp
299 m['message_id'] = six.text_type(uuid.uuid4())
300 m['priority'] = 'INFO'
301 m["payload"] = {}
302 m["payload"]["asic-id"] = asic
303 m["payload"]["bv-agent"] = host
304 m["payload"]["port"] = y.getPort()
305 m["payload"]["queue"] = y.getQueue()
306 m["payload"]["stat"] = "uc-queue-buffer-count"
307 m["payload"]["value"] = y.getUcQueueBufferCount()
308 ret.append(m)
309
310 d = data.getEgressUcQueueGroup()
311 for x in d:
312 for y in x:
313 m = {}
314 m["event_type"] = "broadview.bst." + repr(x)
315 m["timestamp"] = timestamp
316 m['message_id'] = six.text_type(uuid.uuid4())
317 m['priority'] = 'INFO'
318 m["payload"] = {}
319 m["payload"]["asic-id"] = asic
320 m["payload"]["bv-agent"] = host
321 m["payload"]["queue-group"] = y.getQueueGroup()
322 m["payload"]["stat"] = "uc-buffer-count"
323 m["payload"]["value"] = y.getUcBufferCount()
324 ret.append(m)
325
326 return json.dumps(ret)
327
328 def _toReport(self, host, data):
329 return self.__serializeToJSON(host, "bst-report", data)
330
331 def _toTrigger(self, host, data):
332 return self.__serializeToJSON(host, "bst-trigger", data)
333
334 def _toThreshold(self, host, data):
335 return self.__serializeToJSON(host, "bst-thresholds", data)
336
337 def serialize(self, host, data):
338 # serialize a parsed BST report to Monasca metrics
339 ret = (False, None)
340
341 rpt = data.getReportType()
342
343 s = None
344 if rpt == ReportTypes.Report:
345 s = self._toReport(host, data)
346 elif rpt == ReportTypes.Trigger:
347 s = self._toTrigger(host, data)
348 elif rpt == ReportTypes.Threshold:
349 s = self._toThreshold(host, data)
350
351 if s:
352 ret = (True, s)
353
354 return ret
355
356 def __repr__(self):
357 return "BST To Monasca Serializer"
358
359class TestSerializer(unittest.TestCase):
360
361 def setUp(self):
362 self._host = "127.0.0.1"
363 self.bst_report1 = {
364 "jsonrpc": "2.0",
365 "method": "get-bst-report",
366 "asic-id": "20",
367 "version": "1",
368 "time-stamp": "2014-11-18 - 00:15:04 ",
369 "report": [
370 {
371 "realm": "device",
372 "data": 46
373 }]
374 }
375
376 self.bst_report2 = {
377 "jsonrpc": "2.0",
378 "method": "get-bst-report",
379 "asic-id": "20",
380 "version": "1",
381 "time-stamp": "2014-11-18 - 00:15:04 ",
382 "report": [
383 {
384 "realm": "ingress-port-priority-group",
385 "data": [{
386 "port": "2",
387 "data": [[5, 45500, 44450]]
388 }, {
389 "port": "3",
390 "data": [[6, 25500, 24450]]
391 }]
392 }]
393 }
394
395 self.bst_report3 = {
396 "jsonrpc": "2.0",
397 "method": "get-bst-report",
398 "asic-id": "20",
399 "version": "1",
400 "time-stamp": "2014-11-18 - 00:15:04 ",
401 "report": [
402 {
403 "realm": "ingress-port-service-pool",
404 "data": [{
405 "port": "2",
406 "data": [[5, 324]]
407 }, {
408 "port": "3",
409 "data": [[6, 366]]
410 }]
411 }]
412 }
413
414 self.bst_report4 = {
415 "jsonrpc": "2.0",
416 "method": "get-bst-report",
417 "asic-id": "20",
418 "version": "1",
419 "time-stamp": "2014-11-18 - 00:15:04 ",
420 "report": [
421 {
422 "realm": "ingress-service-pool",
423 "data": [[1, 3240], [2, 3660]]
424 }]
425 }
426
427 self.bst_report5 = {
428 "jsonrpc": "2.0",
429 "method": "get-bst-report",
430 "asic-id": "20",
431 "version": "1",
432 "time-stamp": "2014-11-18 - 00:15:04 ",
433 "report": [
434 {
435 "realm": "egress-cpu-queue",
436 "data": [[3, 4566, 0]]
437 }]
438 }
439
440 self.bst_report6 = {
441 "jsonrpc": "2.0",
442 "method": "get-bst-report",
443 "asic-id": "20",
444 "version": "1",
445 "time-stamp": "2014-11-18 - 00:15:04 ",
446 "report": [
447 {
448 "realm": "egress-mc-queue",
449 "data": [[1, "1", 34, 89], [2, "4", 1244, 0], [3, "5", 0,
4503]]
451 }]
452 }
453
454 self.bst_report7 = {
455 "jsonrpc": "2.0",
456 "method": "get-bst-report",
457 "asic-id": "20",
458 "version": "1",
459 "time-stamp": "2014-11-18 - 00:15:04 ",
460 "report": [
461 {
462 "realm": "egress-port-service-pool",
463 "data": [{
464 "port": "2",
465 "data": [[5, 0, 324, 0]]
466 }, {
467 "port": "3",
468 "data": [[6, 0, 366, 0]]
469 }]
470 }]
471 }
472
473 self.bst_report8 = {
474 "jsonrpc": "2.0",
475 "method": "get-bst-report",
476 "asic-id": "20",
477 "version": "1",
478 "time-stamp": "2014-11-18 - 00:15:04 ",
479 "report": [
480 {
481 "realm": "egress-rqe-queue",
482 "data": [[2, 3333, 4444], [5, 25, 45]]
483 }]
484 }
485
486 self.bst_report9 = {
487 "jsonrpc": "2.0",
488 "method": "get-bst-report",
489 "asic-id": "20",
490 "version": "1",
491 "time-stamp": "2014-11-18 - 00:15:04 ",
492 "report": [
493 {
494 "realm": "egress-service-pool",
495 "data": [[2, 0, 0, 3240], [3, 3660, 0, 0]]
496 }]
497 }
498
499 self.bst_report10 = {
500 "jsonrpc": "2.0",
501 "method": "get-bst-report",
502 "asic-id": "20",
503 "version": "1",
504 "time-stamp": "2014-11-18 - 00:15:04 ",
505 "report": [
506 {
507 "realm": "egress-uc-queue",
508 "data": [[6, "0", 1111]]
509 }]
510 }
511
512 self.bst_report11 = {
513 "jsonrpc": "2.0",
514 "method": "get-bst-report",
515 "asic-id": "20",
516 "version": "1",
517 "time-stamp": "2014-11-18 - 00:15:04 ",
518 "report": [
519 {
520 "realm": "egress-uc-queue-group",
521 "data": [[6, 2222]]
522 }]
523 }
524
525
526 self.trigger1 = {
527 "jsonrpc": "2.0",
528 "method": "trigger-report",
529 "asic-id": "20",
530 "version": "1",
531 "time-stamp": "2014-11-18 - 00:13:08 ",
532 "realm": "ingress-port-priority-group",
533 "counter": "um-share-buffer-count",
534 "port": "2",
535 "priority-group": "5",
536 "report": [
537 {
538 "realm": "device",
539 "data": 46
540 }]
541 }
542
543 self.trigger2 = {
544 "jsonrpc": "2.0",
545 "method": "trigger-report",
546 "asic-id": "20",
547 "version": "1",
548 "time-stamp": "2014-11-18 - 00:13:08 ",
549 "realm": "ingress-port-priority-group",
550 "counter": "um-share-buffer-count",
551 "port": "2",
552 "priority-group": "5",
553 "report": [
554 {
555 "realm": "ingress-port-priority-group",
556
557 "data": [{
558 "port": "2",
559 "data": [[5, 45500, 44450]]
560 }, {
561 "port": "3",
562 "data": [[6, 25500, 24450]]
563 }]
564 }]
565 }
566
567 self.trigger3 = {
568 "jsonrpc": "2.0",
569 "method": "trigger-report",
570 "asic-id": "20",
571 "version": "1",
572 "time-stamp": "2014-11-18 - 00:13:08 ",
573 "realm": "ingress-port-priority-group",
574 "counter": "um-share-buffer-count",
575 "port": "2",
576 "priority-group": "5",
577 "report": [
578 {
579 "realm": "ingress-port-service-pool",
580 "data": [{
581 "port": "2",
582 "data": [[5, 324]]
583 }, {
584 "port": "3",
585 "data": [[6, 366]]
586 }]
587 }]
588 }
589
590 self.trigger4 = {
591 "jsonrpc": "2.0",
592 "method": "trigger-report",
593 "asic-id": "20",
594 "version": "1",
595 "time-stamp": "2014-11-18 - 00:13:08 ",
596 "realm": "ingress-port-priority-group",
597 "counter": "um-share-buffer-count",
598 "port": "2",
599 "priority-group": "5",
600 "report": [
601 {
602 "realm": "ingress-service-pool",
603 "data": [[1, 3240], [2, 3660]]
604 }]
605 }
606
607 self.trigger5 = {
608 "jsonrpc": "2.0",
609 "method": "trigger-report",
610 "asic-id": "20",
611 "version": "1",
612 "time-stamp": "2014-11-18 - 00:13:08 ",
613 "realm": "ingress-port-priority-group",
614 "counter": "um-share-buffer-count",
615 "port": "2",
616 "priority-group": "5",
617 "report": [
618 {
619 "realm": "egress-cpu-queue",
620 "data": [[3, 4566, 0]]
621 }]
622 }
623
624 self.trigger6 = {
625 "jsonrpc": "2.0",
626 "method": "trigger-report",
627 "asic-id": "20",
628 "version": "1",
629 "time-stamp": "2014-11-18 - 00:13:08 ",
630 "realm": "ingress-port-priority-group",
631 "counter": "um-share-buffer-count",
632 "port": "2",
633 "priority-group": "5",
634 "report": [
635 {
636 "realm": "egress-mc-queue",
637 "data": [[1, "1", 34, 89], [2, "4", 1244, 0], [3, "5", 0,
6383]]
639 }]
640 }
641
642 self.trigger7 = {
643 "jsonrpc": "2.0",
644 "method": "trigger-report",
645 "asic-id": "20",
646 "version": "1",
647 "time-stamp": "2014-11-18 - 00:13:08 ",
648 "realm": "ingress-port-priority-group",
649 "counter": "um-share-buffer-count",
650 "port": "2",
651 "priority-group": "5",
652 "report": [
653 {
654 "realm": "egress-port-service-pool",
655 "data": [{
656 "port": "2",
657 "data": [[5, 0, 324, 0]]
658 }, {
659 "port": "3",
660 "data": [[6, 0, 366, 0]]
661 }]
662 }]
663 }
664
665 self.trigger8 = {
666 "jsonrpc": "2.0",
667 "method": "trigger-report",
668 "asic-id": "20",
669 "version": "1",
670 "time-stamp": "2014-11-18 - 00:13:08 ",
671 "realm": "ingress-port-priority-group",
672 "counter": "um-share-buffer-count",
673 "port": "2",
674 "priority-group": "5",
675 "report": [
676 {
677 "realm": "egress-rqe-queue",
678 "data": [[2, 3333, 4444], [5, 25, 45]]
679 }]
680 }
681
682 self.trigger9 = {
683 "jsonrpc": "2.0",
684 "method": "trigger-report",
685 "asic-id": "20",
686 "version": "1",
687 "time-stamp": "2014-11-18 - 00:13:08 ",
688 "realm": "ingress-port-priority-group",
689 "counter": "um-share-buffer-count",
690 "port": "2",
691 "priority-group": "5",
692 "report": [
693 {
694 "realm": "egress-service-pool",
695 "data": [[2, 0, 0, 3240], [3, 3660, 0, 0]]
696 }]
697 }
698
699 self.trigger10 = {
700 "jsonrpc": "2.0",
701 "method": "trigger-report",
702 "asic-id": "20",
703 "version": "1",
704 "time-stamp": "2014-11-18 - 00:13:08 ",
705 "realm": "ingress-port-priority-group",
706 "counter": "um-share-buffer-count",
707 "port": "2",
708 "priority-group": "5",
709 "report": [
710 {
711 "realm": "egress-uc-queue",
712 "data": [[6, "0", 1111]]
713 }]
714 }
715
716 self.trigger11 = {
717 "jsonrpc": "2.0",
718 "method": "trigger-report",
719 "asic-id": "20",
720 "version": "1",
721 "time-stamp": "2014-11-18 - 00:13:08 ",
722 "realm": "ingress-port-priority-group",
723 "counter": "um-share-buffer-count",
724 "port": "2",
725 "priority-group": "5",
726 "report": [
727 {
728 "realm": "egress-uc-queue-group",
729 "data": [[6, 2222]]
730 }]
731 }
732
733
734 self.thresholds1 = {
735 "jsonrpc": "2.0",
736 "method": "get-bst-thresholds",
737 "asic-id": "20",
738 "version": "1",
739 "time-stamp": "2014-11-14 - 00:15:04 ",
740 "report": [
741 {
742 "realm": "device",
743 "data": 46
744 }]
745 }
746
747 self.thresholds2 = {
748 "jsonrpc": "2.0",
749 "method": "get-bst-thresholds",
750 "asic-id": "20",
751 "version": "1",
752 "time-stamp": "2014-11-14 - 00:15:04 ",
753 "report": [
754 {
755 "realm": "ingress-port-priority-group",
756 "data": [{
757 "port": "2",
758 "data": [[5, 45500, 44450]]
759 }, {
760 "port": "3",
761 "data": [[6, 25500, 24450]]
762 }]
763 }]
764 }
765
766 self.thresholds3 = {
767 "jsonrpc": "2.0",
768 "method": "get-bst-thresholds",
769 "asic-id": "20",
770 "version": "1",
771 "time-stamp": "2014-11-14 - 00:15:04 ",
772 "report": [
773 {
774 "realm": "ingress-port-service-pool",
775 "data": [{
776 "port": "2",
777 "data": [[5, 324]]
778 }, {
779 "port": "3",
780 "data": [[6, 366]]
781 }]
782 }]
783 }
784
785 self.thresholds4 = {
786 "jsonrpc": "2.0",
787 "method": "get-bst-thresholds",
788 "asic-id": "20",
789 "version": "1",
790 "time-stamp": "2014-11-14 - 00:15:04 ",
791 "report": [
792 {
793 "realm": "ingress-service-pool",
794 "data": [[1, 3240], [2, 3660]]
795 }]
796 }
797
798 self.thresholds5 = {
799 "jsonrpc": "2.0",
800 "method": "get-bst-thresholds",
801 "asic-id": "20",
802 "version": "1",
803 "time-stamp": "2014-11-14 - 00:15:04 ",
804 "report": [
805 {
806 "realm": "egress-cpu-queue",
807 "data": [[3, 4566, 0]]
808 }]
809 }
810
811 self.thresholds6 = {
812 "jsonrpc": "2.0",
813 "method": "get-bst-thresholds",
814 "asic-id": "20",
815 "version": "1",
816 "time-stamp": "2014-11-14 - 00:15:04 ",
817 "report": [
818 {
819 "realm": "egress-mc-queue",
820 "data": [[1, "1", 34, 89], [2, "4", 1244, 0], [3, "5", 0, 3]]
821 }]
822 }
823
824 self.thresholds7 = {
825 "jsonrpc": "2.0",
826 "method": "get-bst-thresholds",
827 "asic-id": "20",
828 "version": "1",
829 "time-stamp": "2014-11-14 - 00:15:04 ",
830 "report": [
831 {
832 "realm": "egress-port-service-pool",
833 "data": [{
834 "port": "2",
835 "data": [[5, 0, 324, 0]]
836 }, {
837 "port": "3",
838 "data": [[6, 0, 366, 0]]
839 }]
840 }]
841 }
842
843 self.thresholds8 = {
844 "jsonrpc": "2.0",
845 "method": "get-bst-thresholds",
846 "asic-id": "20",
847 "version": "1",
848 "time-stamp": "2014-11-14 - 00:15:04 ",
849 "report": [
850 {
851 "realm": "egress-rqe-queue",
852 "data": [[2, 3333, 4444], [5, 25, 45]]
853 }]
854 }
855
856 self.thresholds9 = {
857 "jsonrpc": "2.0",
858 "method": "get-bst-thresholds",
859 "asic-id": "20",
860 "version": "1",
861 "time-stamp": "2014-11-14 - 00:15:04 ",
862 "report": [
863 {
864 "realm": "egress-service-pool",
865 "data": [[2, 0, 0, 3240], [3, 3660, 0, 0]]
866 }]
867 }
868
869 self.thresholds10 = {
870 "jsonrpc": "2.0",
871 "method": "get-bst-thresholds",
872 "asic-id": "20",
873 "version": "1",
874 "time-stamp": "2014-11-14 - 00:15:04 ",
875 "report": [
876 {
877 "realm": "egress-uc-queue",
878 "data": [[6, "0", 1111]]
879 }]
880 }
881
882 self.thresholds11 = {
883 "jsonrpc": "2.0",
884 "method": "get-bst-thresholds",
885 "asic-id": "20",
886 "version": "1",
887 "time-stamp": "2014-11-14 - 00:15:04 ",
888 "report": [
889 {
890 "realm": "egress-uc-queue-group",
891 "data": [[6, 2222]]
892 }]
893 }
894
895
896 def test_bst_report1(self):
897 rep = BSTParser()
898 rep.process(self.bst_report1)
899 serializer = BSTToMonasca()
900 ret = serializer.serialize(self._host, rep)
901 self.assertEqual(ret[0], True)
902 data = json.loads(ret[1])
903 self.assertTrue(len(data) == 1)
904 data = data[0]
905 self.assertTrue("timestamp" in data)
906 data["timestamp"] = data["timestamp"] / 1000
907 self.assertTrue("name" in data)
908 self.assertTrue("value" in data)
909 self.assertTrue("payload" in data)
910 t1 = datetime.datetime.fromtimestamp(int(data["timestamp"]))
911 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
912 t2 = self.bst_report1["time-stamp"].strip()
913 self.assertEqual(t1, t2)
914 self.assertEqual(data["name"], "broadview.bst.device")
915 self.assertEqual(data["value"], 46)
916 dim = data["payload"]
917 self.assertTrue("asic-id" in dim)
918 self.assertEqual(dim["asic-id"], self.bst_report1["asic-id"])
919
920
921 def test_bst_report2(self):
922 rep = BSTParser()
923 rep.process(self.bst_report2)
924 serializer = BSTToMonasca()
925 ret = serializer.serialize(self._host, rep)
926 self.assertEqual(ret[0], True)
927 data = json.loads(ret[1])
928 self.assertTrue(len(data) == 4)
929 i = 0
930 y = self.bst_report2
931 for x in data:
932 i = i + 1
933 self.assertTrue("timestamp" in x)
934 x["timestamp"] = x["timestamp"] / 1000
935 self.assertTrue("name" in x)
936 self.assertTrue("value" in x)
937 self.assertTrue("payload" in x)
938 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
939 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
940 t2 = y["time-stamp"].strip()
941 self.assertEqual(t1, t2)
942 self.assertEqual(x["name"], "broadview.bst.ingress-port-priority-group")
943 dim = x["payload"]
944 self.assertEqual(dim["asic-id"], y["asic-id"])
945 self.assertTrue("stat" in dim)
946 self.assertTrue("priority-group" in dim)
947 self.assertTrue("port" in dim)
948 if dim["port"] == "2":
949 self.assertEqual(dim["priority-group"], 5)
950 if dim["stat"] == "um-share-buffer-count":
951 self.assertTrue(x["value"] == 45500)
952 elif dim["stat"] == "um-headroom-buffer-count":
953 self.assertTrue(x["value"] == 44450)
954 else:
955 self.assertTrue(dim["stat"] == True)
956 elif dim["port"] == "3":
957 self.assertEqual(dim["priority-group"], 6)
958 if dim["stat"] == "um-share-buffer-count":
959 self.assertTrue(x["value"] == 25500)
960 elif dim["stat"] == "um-headroom-buffer-count":
961 self.assertTrue(x["value"] == 24450)
962 else:
963 self.assertTrue(dim["stat"] == True)
964 else:
965 self.assertTrue(dim["port"] == True)
966
967
968 def test_bst_report3(self):
969 rep = BSTParser()
970 rep.process(self.bst_report3)
971 serializer = BSTToMonasca()
972 ret = serializer.serialize(self._host, rep)
973 self.assertEqual(ret[0], True)
974 data = json.loads(ret[1])
975 self.assertTrue(len(data) == 2)
976 i = 0
977 y = self.bst_report3
978 for x in data:
979 i = i + 1
980 self.assertTrue("timestamp" in x)
981 self.assertTrue("name" in x)
982 self.assertTrue("value" in x)
983 self.assertTrue("payload" in x)
984 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]) / 1000)
985 x["timestamp"] = x["timestamp"] / 1000
986 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
987 t2 = y["time-stamp"].strip()
988 self.assertEqual(t1, t2)
989 self.assertEqual(x["name"], "broadview.bst.ingress-port-service-pool")
990 dim = x["payload"]
991 self.assertEqual(dim["asic-id"], y["asic-id"])
992 self.assertTrue("stat" in dim)
993 self.assertTrue("service-pool" in dim)
994 self.assertTrue("port" in dim)
995 if dim["port"] == "2":
996 self.assertEqual(dim["service-pool"], 5)
997 if dim["stat"] == "um-share-buffer-count":
998 self.assertTrue(x["value"] == 324)
999 else:
1000 self.assertTrue(dim["stat"] == True)
1001 elif dim["port"] == "3":
1002 self.assertEqual(dim["service-pool"], 6)
1003 if dim["stat"] == "um-share-buffer-count":
1004 self.assertTrue(x["value"] == 366)
1005 else:
1006 self.assertTrue(dim["stat"] == True)
1007 else:
1008 self.assertTrue(dim["port"] == True)
1009
1010 def test_bst_report4(self):
1011 rep = BSTParser()
1012 rep.process(self.bst_report4)
1013 serializer = BSTToMonasca()
1014 ret = serializer.serialize(self._host, rep)
1015 self.assertEqual(ret[0], True)
1016 data = json.loads(ret[1])
1017 self.assertTrue(len(data) == 2)
1018 i = 0
1019 y = self.bst_report4
1020 for x in data:
1021 i = i + 1
1022 self.assertTrue("timestamp" in x)
1023 x["timestamp"] = x["timestamp"] / 1000
1024 self.assertTrue("name" in x)
1025 self.assertTrue("value" in x)
1026 self.assertTrue("payload" in x)
1027 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1028 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1029 t2 = y["time-stamp"].strip()
1030 self.assertEqual(t1, t2)
1031 self.assertEqual(x["name"], "broadview.bst.ingress-service-pool")
1032 dim = x["payload"]
1033 self.assertEqual(dim["asic-id"], y["asic-id"])
1034 self.assertTrue("stat" in dim)
1035 self.assertTrue("service-pool" in dim)
1036 if dim["service-pool"] == 1:
1037 if dim["stat"] == "um-share-buffer-count":
1038 self.assertTrue(x["value"] == 3240)
1039 else:
1040 self.assertTrue(dim["stat"] == True)
1041 elif dim["service-pool"] == 2:
1042 if dim["stat"] == "um-share-buffer-count":
1043 self.assertTrue(x["value"] == 3660)
1044 else:
1045 self.assertTrue(dim["stat"] == True)
1046 else:
1047 self.assertTrue(dim["service-pool"] == True)
1048
1049
1050 def test_bst_report5(self):
1051 rep = BSTParser()
1052 rep.process(self.bst_report5)
1053 serializer = BSTToMonasca()
1054 ret = serializer.serialize(self._host, rep)
1055 self.assertEqual(ret[0], True)
1056 data = json.loads(ret[1])
1057 self.assertTrue(len(data) == 2)
1058 i = 0
1059 y = self.bst_report5
1060 for x in data:
1061 i = i + 1
1062 self.assertTrue("timestamp" in x)
1063 x["timestamp"] = x["timestamp"] / 1000
1064 self.assertTrue("name" in x)
1065 self.assertTrue("value" in x)
1066 self.assertTrue("payload" in x)
1067 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1068 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1069 t2 = y["time-stamp"].strip()
1070 self.assertEqual(t1, t2)
1071 self.assertEqual(x["name"], "broadview.bst.egress-cpu-queue")
1072 dim = x["payload"]
1073 self.assertEqual(dim["asic-id"], y["asic-id"])
1074 self.assertTrue("stat" in dim)
1075 self.assertTrue("queue" in dim)
1076 if dim["queue"] == 3:
1077 if dim["stat"] == "cpu-buffer-count":
1078 self.assertTrue(x["value"] == 4566)
1079 elif dim["stat"] == "cpu-queue-entries":
1080 self.assertTrue(x["value"] == 0)
1081 else:
1082 self.assertTrue(dim["stat"] == True)
1083 else:
1084 self.assertTrue(dim["queue"] == True)
1085
1086 def test_bst_report6(self):
1087 rep = BSTParser()
1088 rep.process(self.bst_report6)
1089 serializer = BSTToMonasca()
1090 ret = serializer.serialize(self._host, rep)
1091 self.assertEqual(ret[0], True)
1092 data = json.loads(ret[1])
1093 self.assertTrue(len(data) == 6)
1094 i = 0
1095 y = self.bst_report6
1096 for x in data:
1097 i = i + 1
1098 self.assertTrue("timestamp" in x)
1099 x["timestamp"] = x["timestamp"] / 1000
1100 self.assertTrue("name" in x)
1101 self.assertTrue("value" in x)
1102 self.assertTrue("payload" in x)
1103 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1104 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1105 t2 = y["time-stamp"].strip()
1106 self.assertEqual(t1, t2)
1107 self.assertEqual(x["name"], "broadview.bst.egress-mc-queue")
1108 dim = x["payload"]
1109 self.assertEqual(dim["asic-id"], y["asic-id"])
1110 self.assertTrue("stat" in dim)
1111 self.assertTrue("queue" in dim)
1112 self.assertTrue("port" in dim)
1113 if dim["queue"] == 1:
1114 self.assertTrue(dim["port"] == "1")
1115 if dim["stat"] == "mc-buffer-count":
1116 self.assertTrue(x["value"] == 34)
1117 elif dim["stat"] == "mc-queue-entries":
1118 self.assertTrue(x["value"] == 89)
1119 else:
1120 self.assertTrue(dim["stat"] == True)
1121 elif dim["queue"] == 2:
1122 self.assertTrue(dim["port"] == "4")
1123 if dim["stat"] == "mc-buffer-count":
1124 self.assertTrue(x["value"] == 1244)
1125 elif dim["stat"] == "mc-queue-entries":
1126 self.assertTrue(x["value"] == 0)
1127 else:
1128 self.assertTrue(dim["stat"] == True)
1129 elif dim["queue"] == 3:
1130 self.assertTrue(dim["port"] == "5")
1131 if dim["stat"] == "mc-buffer-count":
1132 self.assertTrue(x["value"] == 0)
1133 elif dim["stat"] == "mc-queue-entries":
1134 self.assertTrue(x["value"] == 3)
1135 else:
1136 self.assertTrue(dim["stat"] == True)
1137 else:
1138 self.assertTrue(dim["queue"] == True)
1139
1140 def test_bst_report7(self):
1141 rep = BSTParser()
1142 rep.process(self.bst_report7)
1143 serializer = BSTToMonasca()
1144 ret = serializer.serialize(self._host, rep)
1145 self.assertEqual(ret[0], True)
1146 data = json.loads(ret[1])
1147 self.assertTrue(len(data) == 6)
1148 i = 0
1149 y = self.bst_report7
1150 for x in data:
1151 i = i + 1
1152 self.assertTrue("timestamp" in x)
1153 x["timestamp"] = x["timestamp"] / 1000
1154 self.assertTrue("name" in x)
1155 self.assertTrue("value" in x)
1156 self.assertTrue("payload" in x)
1157 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1158 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1159 t2 = y["time-stamp"].strip()
1160 self.assertEqual(t1, t2)
1161 self.assertEqual(x["name"], "broadview.bst.egress-port-service-pool")
1162 dim = x["payload"]
1163 self.assertEqual(dim["asic-id"], y["asic-id"])
1164 self.assertTrue("stat" in dim)
1165 self.assertTrue("service-pool" in dim)
1166 self.assertTrue("port" in dim)
1167 if dim["service-pool"] == 5:
1168 self.assertTrue(dim["port"] == "2")
1169 if dim["stat"] == "um-share-buffer-count":
1170 self.assertTrue(x["value"] == 0)
1171 elif dim["stat"] == "mc-share-buffer-count":
1172 self.assertTrue(x["value"] == 324)
1173 elif dim["stat"] == "mc-share-queue-entries":
1174 self.assertTrue(x["value"] == 0)
1175 else:
1176 self.assertTrue(dim["stat"] == True)
1177 elif dim["service-pool"] == 6:
1178 self.assertTrue(dim["port"] == "3")
1179 if dim["stat"] == "um-share-buffer-count":
1180 self.assertTrue(x["value"] == 0)
1181 elif dim["stat"] == "mc-share-buffer-count":
1182 self.assertTrue(x["value"] == 366)
1183 elif dim["stat"] == "mc-share-queue-entries":
1184 self.assertTrue(x["value"] == 0)
1185 else:
1186 self.assertTrue(dim["stat"] == True)
1187 else:
1188 self.assertTrue(dim["service-pool"] == True)
1189
1190 def test_bst_report8(self):
1191 rep = BSTParser()
1192 rep.process(self.bst_report8)
1193 serializer = BSTToMonasca()
1194 ret = serializer.serialize(self._host, rep)
1195 self.assertEqual(ret[0], True)
1196 data = json.loads(ret[1])
1197 self.assertTrue(len(data) == 4)
1198 i = 0
1199 y = self.bst_report8
1200 for x in data:
1201 i = i + 1
1202 self.assertTrue("timestamp" in x)
1203 x["timestamp"] = x["timestamp"] / 1000
1204 self.assertTrue("name" in x)
1205 self.assertTrue("value" in x)
1206 self.assertTrue("payload" in x)
1207 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1208 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1209 t2 = y["time-stamp"].strip()
1210 self.assertEqual(t1, t2)
1211 self.assertEqual(x["name"], "broadview.bst.egress-rqe-queue")
1212 dim = x["payload"]
1213 self.assertEqual(dim["asic-id"], y["asic-id"])
1214 self.assertTrue("stat" in dim)
1215 self.assertTrue("queue" in dim)
1216 if dim["queue"] == 2:
1217 if dim["stat"] == "rqe-buffer-count":
1218 self.assertTrue(x["value"] == 3333)
1219 elif dim["stat"] == "rqe-queue-entries":
1220 self.assertTrue(x["value"] == 4444)
1221 else:
1222 self.assertTrue(dim["stat"] == True)
1223 elif dim["queue"] == 5:
1224 if dim["stat"] == "rqe-buffer-count":
1225 self.assertTrue(x["value"] == 25)
1226 elif dim["stat"] == "rqe-queue-entries":
1227 self.assertTrue(x["value"] == 45)
1228 else:
1229 self.assertTrue(dim["stat"] == True)
1230 else:
1231 self.assertTrue(dim["queue"] == True)
1232
1233 def test_bst_report9(self):
1234 rep = BSTParser()
1235 rep.process(self.bst_report9)
1236 serializer = BSTToMonasca()
1237 ret = serializer.serialize(self._host, rep)
1238 self.assertEqual(ret[0], True)
1239 data = json.loads(ret[1])
1240 self.assertTrue(len(data) == 6)
1241 i = 0
1242 y = self.bst_report9
1243 for x in data:
1244 i = i + 1
1245 self.assertTrue("timestamp" in x)
1246 x["timestamp"] = x["timestamp"] / 1000
1247 self.assertTrue("name" in x)
1248 self.assertTrue("value" in x)
1249 self.assertTrue("payload" in x)
1250 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1251 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1252 t2 = y["time-stamp"].strip()
1253 self.assertEqual(t1, t2)
1254 self.assertEqual(x["name"], "broadview.bst.egress-service-pool")
1255 dim = x["payload"]
1256 self.assertEqual(dim["asic-id"], y["asic-id"])
1257 self.assertTrue("stat" in dim)
1258 self.assertTrue("service-pool" in dim)
1259 if dim["service-pool"] == 2:
1260 if dim["stat"] == "um-share-buffer-count":
1261 self.assertTrue(x["value"] == 0)
1262 elif dim["stat"] == "mc-share-buffer-count":
1263 self.assertTrue(x["value"] == 0)
1264 elif dim["stat"] == "mc-share-queue-entries":
1265 self.assertTrue(x["value"] == 3240)
1266 else:
1267 self.assertTrue(dim["stat"] == True)
1268 elif dim["service-pool"] == 3:
1269 if dim["stat"] == "um-share-buffer-count":
1270 self.assertTrue(x["value"] == 3660)
1271 elif dim["stat"] == "mc-share-buffer-count":
1272 self.assertTrue(x["value"] == 0)
1273 elif dim["stat"] == "mc-share-queue-entries":
1274 self.assertTrue(x["value"] == 0)
1275 else:
1276 self.assertTrue(dim["stat"] == True)
1277 else:
1278 self.assertTrue(dim["service-pool"] == True)
1279
1280 def test_bst_report10(self):
1281 rep = BSTParser()
1282 rep.process(self.bst_report10)
1283 serializer = BSTToMonasca()
1284 ret = serializer.serialize(self._host, rep)
1285 self.assertEqual(ret[0], True)
1286 data = json.loads(ret[1])
1287 self.assertTrue(len(data) == 1)
1288 i = 0
1289 y = self.bst_report10
1290 for x in data:
1291 i = i + 1
1292 self.assertTrue("timestamp" in x)
1293 x["timestamp"] = x["timestamp"] / 1000
1294 self.assertTrue("name" in x)
1295 self.assertTrue("value" in x)
1296 self.assertTrue("payload" in x)
1297 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1298 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1299 t2 = y["time-stamp"].strip()
1300 self.assertEqual(t1, t2)
1301 self.assertEqual(x["name"], "broadview.bst.egress-uc-queue")
1302 dim = x["payload"]
1303 self.assertEqual(dim["asic-id"], y["asic-id"])
1304 self.assertTrue("stat" in dim)
1305 self.assertTrue("queue" in dim)
1306 self.assertTrue("port" in dim)
1307 if dim["queue"] == 6:
1308 self.assertEqual(dim["port"], "0")
1309 if dim["stat"] == "uc-queue-buffer-count":
1310 self.assertTrue(x["value"] == 1111)
1311 else:
1312 self.assertTrue(dim["stat"] == True)
1313 else:
1314 self.assertTrue(dim["queue"] == True)
1315
1316 def test_bst_report11(self):
1317 rep = BSTParser()
1318 rep.process(self.bst_report11)
1319 serializer = BSTToMonasca()
1320 ret = serializer.serialize(self._host, rep)
1321 self.assertEqual(ret[0], True)
1322 data = json.loads(ret[1])
1323 self.assertTrue(len(data) == 1)
1324 i = 0
1325 y = self.bst_report11
1326 for x in data:
1327 i = i + 1
1328 self.assertTrue("timestamp" in x)
1329 x["timestamp"] = x["timestamp"] / 1000
1330 self.assertTrue("name" in x)
1331 self.assertTrue("value" in x)
1332 self.assertTrue("payload" in x)
1333 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1334 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1335 t2 = y["time-stamp"].strip()
1336 self.assertEqual(t1, t2)
1337 self.assertEqual(x["name"], "broadview.bst.egress-uc-queue-group")
1338 dim = x["payload"]
1339 self.assertEqual(dim["asic-id"], y["asic-id"])
1340 self.assertTrue("stat" in dim)
1341 self.assertTrue("queue-group" in dim)
1342 if dim["queue-group"] == 6:
1343 if dim["stat"] == "uc-buffer-count":
1344 self.assertTrue(x["value"] == 2222)
1345 else:
1346 self.assertTrue(dim["stat"] == True)
1347 else:
1348 self.assertTrue(dim["queue-group"] == True)
1349
1350 def test_trigger1(self):
1351 rep = BSTParser()
1352 rep.process(self.trigger1)
1353 serializer = BSTToMonasca()
1354 ret = serializer.serialize(self._host, rep)
1355 self.assertEqual(ret[0], True)
1356 data = json.loads(ret[1])
1357 self.assertTrue(len(data) == 1)
1358 data = data[0]
1359 self.assertTrue("timestamp" in data)
1360 data["timestamp"] = data["timestamp"] / 1000
1361 self.assertTrue("name" in data)
1362 self.assertTrue("value" in data)
1363 self.assertTrue("payload" in data)
1364 t1 = datetime.datetime.fromtimestamp(int(data["timestamp"]))
1365 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1366 t2 = self.trigger1["time-stamp"].strip()
1367 self.assertEqual(t1, t2)
1368 self.assertEqual(data["name"], "broadview.bst.device")
1369 self.assertEqual(data["value"], 46)
1370 dim = data["payload"]
1371 self.assertTrue("asic-id" in dim)
1372 self.assertEqual(dim["asic-id"], self.trigger1["asic-id"])
1373
1374
1375 def test_trigger2(self):
1376 rep = BSTParser()
1377 rep.process(self.trigger2)
1378 serializer = BSTToMonasca()
1379 ret = serializer.serialize(self._host, rep)
1380 self.assertEqual(ret[0], True)
1381 data = json.loads(ret[1])
1382 self.assertTrue(len(data) == 4)
1383 i = 0
1384 y = self.trigger2
1385 for x in data:
1386 i = i + 1
1387 self.assertTrue("timestamp" in x)
1388 x["timestamp"] = x["timestamp"] / 1000
1389 self.assertTrue("name" in x)
1390 self.assertTrue("value" in x)
1391 self.assertTrue("payload" in x)
1392 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1393 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1394 t2 = y["time-stamp"].strip()
1395 self.assertEqual(t1, t2)
1396 self.assertEqual(x["name"], "broadview.bst.ingress-port-priority-group")
1397 dim = x["payload"]
1398 self.assertEqual(dim["asic-id"], y["asic-id"])
1399 self.assertTrue("stat" in dim)
1400 self.assertTrue("priority-group" in dim)
1401 self.assertTrue("port" in dim)
1402 if dim["port"] == "2":
1403 self.assertEqual(dim["priority-group"], 5)
1404 if dim["stat"] == "um-share-buffer-count":
1405 self.assertTrue(x["value"] == 45500)
1406 elif dim["stat"] == "um-headroom-buffer-count":
1407 self.assertTrue(x["value"] == 44450)
1408 else:
1409 self.assertTrue(dim["stat"] == True)
1410 elif dim["port"] == "3":
1411 self.assertEqual(dim["priority-group"], 6)
1412 if dim["stat"] == "um-share-buffer-count":
1413 self.assertTrue(x["value"] == 25500)
1414 elif dim["stat"] == "um-headroom-buffer-count":
1415 self.assertTrue(x["value"] == 24450)
1416 else:
1417 self.assertTrue(dim["stat"] == True)
1418 else:
1419 self.assertTrue(dim["port"] == True)
1420
1421
1422 def test_trigger3(self):
1423 rep = BSTParser()
1424 rep.process(self.trigger3)
1425 serializer = BSTToMonasca()
1426 ret = serializer.serialize(self._host, rep)
1427 self.assertEqual(ret[0], True)
1428 data = json.loads(ret[1])
1429 self.assertTrue(len(data) == 2)
1430 i = 0
1431 y = self.trigger3
1432 for x in data:
1433 i = i + 1
1434 self.assertTrue("timestamp" in x)
1435 x["timestamp"] = x["timestamp"] / 1000
1436 self.assertTrue("name" in x)
1437 self.assertTrue("value" in x)
1438 self.assertTrue("payload" in x)
1439 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1440 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1441 t2 = y["time-stamp"].strip()
1442 self.assertEqual(t1, t2)
1443 self.assertEqual(x["name"], "broadview.bst.ingress-port-service-pool")
1444 dim = x["payload"]
1445 self.assertEqual(dim["asic-id"], y["asic-id"])
1446 self.assertTrue("stat" in dim)
1447 self.assertTrue("service-pool" in dim)
1448 self.assertTrue("port" in dim)
1449 if dim["port"] == "2":
1450 self.assertEqual(dim["service-pool"], 5)
1451 if dim["stat"] == "um-share-buffer-count":
1452 self.assertTrue(x["value"] == 324)
1453 else:
1454 self.assertTrue(dim["stat"] == True)
1455 elif dim["port"] == "3":
1456 self.assertEqual(dim["service-pool"], 6)
1457 if dim["stat"] == "um-share-buffer-count":
1458 self.assertTrue(x["value"] == 366)
1459 else:
1460 self.assertTrue(dim["stat"] == True)
1461 else:
1462 self.assertTrue(dim["port"] == True)
1463
1464 def test_trigger4(self):
1465 rep = BSTParser()
1466 rep.process(self.trigger4)
1467 serializer = BSTToMonasca()
1468 ret = serializer.serialize(self._host, rep)
1469 self.assertEqual(ret[0], True)
1470 data = json.loads(ret[1])
1471 self.assertTrue(len(data) == 2)
1472 i = 0
1473 y = self.trigger4
1474 for x in data:
1475 i = i + 1
1476 self.assertTrue("timestamp" in x)
1477 x["timestamp"] = x["timestamp"] / 1000
1478 self.assertTrue("name" in x)
1479 self.assertTrue("value" in x)
1480 self.assertTrue("payload" in x)
1481 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1482 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1483 t2 = y["time-stamp"].strip()
1484 self.assertEqual(t1, t2)
1485 self.assertEqual(x["name"], "broadview.bst.ingress-service-pool")
1486 dim = x["payload"]
1487 self.assertEqual(dim["asic-id"], y["asic-id"])
1488 self.assertTrue("stat" in dim)
1489 self.assertTrue("service-pool" in dim)
1490 if dim["service-pool"] == 1:
1491 if dim["stat"] == "um-share-buffer-count":
1492 self.assertTrue(x["value"] == 3240)
1493 else:
1494 self.assertTrue(dim["stat"] == True)
1495 elif dim["service-pool"] == 2:
1496 if dim["stat"] == "um-share-buffer-count":
1497 self.assertTrue(x["value"] == 3660)
1498 else:
1499 self.assertTrue(dim["stat"] == True)
1500 else:
1501 self.assertTrue(dim["service-pool"] == True)
1502
1503
1504 def test_trigger5(self):
1505 rep = BSTParser()
1506 rep.process(self.trigger5)
1507 serializer = BSTToMonasca()
1508 ret = serializer.serialize(self._host, rep)
1509 self.assertEqual(ret[0], True)
1510 data = json.loads(ret[1])
1511 self.assertTrue(len(data) == 2)
1512 i = 0
1513 y = self.trigger5
1514 for x in data:
1515 i = i + 1
1516 self.assertTrue("timestamp" in x)
1517 x["timestamp"] = x["timestamp"] / 1000
1518 self.assertTrue("name" in x)
1519 self.assertTrue("value" in x)
1520 self.assertTrue("payload" in x)
1521 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1522 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1523 t2 = y["time-stamp"].strip()
1524 self.assertEqual(t1, t2)
1525 self.assertEqual(x["name"], "broadview.bst.egress-cpu-queue")
1526 dim = x["payload"]
1527 self.assertEqual(dim["asic-id"], y["asic-id"])
1528 self.assertTrue("stat" in dim)
1529 self.assertTrue("queue" in dim)
1530 if dim["queue"] == 3:
1531 if dim["stat"] == "cpu-buffer-count":
1532 self.assertTrue(x["value"] == 4566)
1533 elif dim["stat"] == "cpu-queue-entries":
1534 self.assertTrue(x["value"] == 0)
1535 else:
1536 self.assertTrue(dim["stat"] == True)
1537 else:
1538 self.assertTrue(dim["queue"] == True)
1539
1540 def test_trigger6(self):
1541 rep = BSTParser()
1542 rep.process(self.trigger6)
1543 serializer = BSTToMonasca()
1544 ret = serializer.serialize(self._host, rep)
1545 self.assertEqual(ret[0], True)
1546 data = json.loads(ret[1])
1547 self.assertTrue(len(data) == 6)
1548 i = 0
1549 y = self.trigger6
1550 for x in data:
1551 i = i + 1
1552 self.assertTrue("timestamp" in x)
1553 x["timestamp"] = x["timestamp"] / 1000
1554 self.assertTrue("name" in x)
1555 self.assertTrue("value" in x)
1556 self.assertTrue("payload" in x)
1557 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1558 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1559 t2 = y["time-stamp"].strip()
1560 self.assertEqual(t1, t2)
1561 self.assertEqual(x["name"], "broadview.bst.egress-mc-queue")
1562 dim = x["payload"]
1563 self.assertEqual(dim["asic-id"], y["asic-id"])
1564 self.assertTrue("stat" in dim)
1565 self.assertTrue("queue" in dim)
1566 self.assertTrue("port" in dim)
1567 if dim["queue"] == 1:
1568 self.assertTrue(dim["port"] == "1")
1569 if dim["stat"] == "mc-buffer-count":
1570 self.assertTrue(x["value"] == 34)
1571 elif dim["stat"] == "mc-queue-entries":
1572 self.assertTrue(x["value"] == 89)
1573 else:
1574 self.assertTrue(dim["stat"] == True)
1575 elif dim["queue"] == 2:
1576 self.assertTrue(dim["port"] == "4")
1577 if dim["stat"] == "mc-buffer-count":
1578 self.assertTrue(x["value"] == 1244)
1579 elif dim["stat"] == "mc-queue-entries":
1580 self.assertTrue(x["value"] == 0)
1581 else:
1582 self.assertTrue(dim["stat"] == True)
1583 elif dim["queue"] == 3:
1584 self.assertTrue(dim["port"] == "5")
1585 if dim["stat"] == "mc-buffer-count":
1586 self.assertTrue(x["value"] == 0)
1587 elif dim["stat"] == "mc-queue-entries":
1588 self.assertTrue(x["value"] == 3)
1589 else:
1590 self.assertTrue(dim["stat"] == True)
1591 else:
1592 self.assertTrue(dim["queue"] == True)
1593
1594 def test_trigger7(self):
1595 rep = BSTParser()
1596 rep.process(self.trigger7)
1597 serializer = BSTToMonasca()
1598 ret = serializer.serialize(self._host, rep)
1599 self.assertEqual(ret[0], True)
1600 data = json.loads(ret[1])
1601 self.assertTrue(len(data) == 6)
1602 i = 0
1603 y = self.trigger7
1604 for x in data:
1605 i = i + 1
1606 self.assertTrue("timestamp" in x)
1607 x["timestamp"] = x["timestamp"] / 1000
1608 self.assertTrue("name" in x)
1609 self.assertTrue("value" in x)
1610 self.assertTrue("payload" in x)
1611 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1612 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1613 t2 = y["time-stamp"].strip()
1614 self.assertEqual(t1, t2)
1615 self.assertEqual(x["name"], "broadview.bst.egress-port-service-pool")
1616 dim = x["payload"]
1617 self.assertEqual(dim["asic-id"], y["asic-id"])
1618 self.assertTrue("stat" in dim)
1619 self.assertTrue("service-pool" in dim)
1620 self.assertTrue("port" in dim)
1621 if dim["service-pool"] == 5:
1622 self.assertTrue(dim["port"] == "2")
1623 if dim["stat"] == "um-share-buffer-count":
1624 self.assertTrue(x["value"] == 0)
1625 elif dim["stat"] == "mc-share-buffer-count":
1626 self.assertTrue(x["value"] == 324)
1627 elif dim["stat"] == "mc-share-queue-entries":
1628 self.assertTrue(x["value"] == 0)
1629 else:
1630 self.assertTrue(dim["stat"] == True)
1631 elif dim["service-pool"] == 6:
1632 self.assertTrue(dim["port"] == "3")
1633 if dim["stat"] == "um-share-buffer-count":
1634 self.assertTrue(x["value"] == 0)
1635 elif dim["stat"] == "mc-share-buffer-count":
1636 self.assertTrue(x["value"] == 366)
1637 elif dim["stat"] == "mc-share-queue-entries":
1638 self.assertTrue(x["value"] == 0)
1639 else:
1640 self.assertTrue(dim["stat"] == True)
1641 else:
1642 self.assertTrue(dim["service-pool"] == True)
1643
1644 def test_trigger8(self):
1645 rep = BSTParser()
1646 rep.process(self.trigger8)
1647 serializer = BSTToMonasca()
1648 ret = serializer.serialize(self._host, rep)
1649 self.assertEqual(ret[0], True)
1650 data = json.loads(ret[1])
1651 self.assertTrue(len(data) == 4)
1652 i = 0
1653 y = self.trigger8
1654 for x in data:
1655 i = i + 1
1656 self.assertTrue("timestamp" in x)
1657 x["timestamp"] = x["timestamp"] / 1000
1658 self.assertTrue("name" in x)
1659 self.assertTrue("value" in x)
1660 self.assertTrue("payload" in x)
1661 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1662 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1663 t2 = y["time-stamp"].strip()
1664 self.assertEqual(t1, t2)
1665 self.assertEqual(x["name"], "broadview.bst.egress-rqe-queue")
1666 dim = x["payload"]
1667 self.assertEqual(dim["asic-id"], y["asic-id"])
1668 self.assertTrue("stat" in dim)
1669 self.assertTrue("queue" in dim)
1670 if dim["queue"] == 2:
1671 if dim["stat"] == "rqe-buffer-count":
1672 self.assertTrue(x["value"] == 3333)
1673 elif dim["stat"] == "rqe-queue-entries":
1674 self.assertTrue(x["value"] == 4444)
1675 else:
1676 self.assertTrue(dim["stat"] == True)
1677 elif dim["queue"] == 5:
1678 if dim["stat"] == "rqe-buffer-count":
1679 self.assertTrue(x["value"] == 25)
1680 elif dim["stat"] == "rqe-queue-entries":
1681 self.assertTrue(x["value"] == 45)
1682 else:
1683 self.assertTrue(dim["stat"] == True)
1684 else:
1685 self.assertTrue(dim["queue"] == True)
1686
1687 def test_trigger9(self):
1688 rep = BSTParser()
1689 rep.process(self.trigger9)
1690 serializer = BSTToMonasca()
1691 ret = serializer.serialize(self._host, rep)
1692 self.assertEqual(ret[0], True)
1693 data = json.loads(ret[1])
1694 self.assertTrue(len(data) == 6)
1695 i = 0
1696 y = self.trigger9
1697 for x in data:
1698 i = i + 1
1699 self.assertTrue("timestamp" in x)
1700 x["timestamp"] = x["timestamp"] / 1000
1701 self.assertTrue("name" in x)
1702 self.assertTrue("value" in x)
1703 self.assertTrue("payload" in x)
1704 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1705 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1706 t2 = y["time-stamp"].strip()
1707 self.assertEqual(t1, t2)
1708 self.assertEqual(x["name"], "broadview.bst.egress-service-pool")
1709 dim = x["payload"]
1710 self.assertEqual(dim["asic-id"], y["asic-id"])
1711 self.assertTrue("stat" in dim)
1712 self.assertTrue("service-pool" in dim)
1713 if dim["service-pool"] == 2:
1714 if dim["stat"] == "um-share-buffer-count":
1715 self.assertTrue(x["value"] == 0)
1716 elif dim["stat"] == "mc-share-buffer-count":
1717 self.assertTrue(x["value"] == 0)
1718 elif dim["stat"] == "mc-share-queue-entries":
1719 self.assertTrue(x["value"] == 3240)
1720 else:
1721 self.assertTrue(dim["stat"] == True)
1722 elif dim["service-pool"] == 3:
1723 if dim["stat"] == "um-share-buffer-count":
1724 self.assertTrue(x["value"] == 3660)
1725 elif dim["stat"] == "mc-share-buffer-count":
1726 self.assertTrue(x["value"] == 0)
1727 elif dim["stat"] == "mc-share-queue-entries":
1728 self.assertTrue(x["value"] == 0)
1729 else:
1730 self.assertTrue(dim["stat"] == True)
1731 else:
1732 self.assertTrue(dim["service-pool"] == True)
1733
1734 def test_trigger10(self):
1735 rep = BSTParser()
1736 rep.process(self.trigger10)
1737 serializer = BSTToMonasca()
1738 ret = serializer.serialize(self._host, rep)
1739 self.assertEqual(ret[0], True)
1740 data = json.loads(ret[1])
1741 self.assertTrue(len(data) == 1)
1742 i = 0
1743 y = self.trigger10
1744 for x in data:
1745 i = i + 1
1746 self.assertTrue("timestamp" in x)
1747 x["timestamp"] = x["timestamp"] / 1000
1748 self.assertTrue("name" in x)
1749 self.assertTrue("value" in x)
1750 self.assertTrue("payload" in x)
1751 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1752 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1753 t2 = y["time-stamp"].strip()
1754 self.assertEqual(t1, t2)
1755 self.assertEqual(x["name"], "broadview.bst.egress-uc-queue")
1756 dim = x["payload"]
1757 self.assertEqual(dim["asic-id"], y["asic-id"])
1758 self.assertTrue("stat" in dim)
1759 self.assertTrue("queue" in dim)
1760 self.assertTrue("port" in dim)
1761 if dim["queue"] == 6:
1762 self.assertEqual(dim["port"], "0")
1763 if dim["stat"] == "uc-queue-buffer-count":
1764 self.assertTrue(x["value"] == 1111)
1765 else:
1766 self.assertTrue(dim["stat"] == True)
1767 else:
1768 self.assertTrue(dim["queue"] == True)
1769
1770 def test_trigger11(self):
1771 rep = BSTParser()
1772 rep.process(self.trigger11)
1773 serializer = BSTToMonasca()
1774 ret = serializer.serialize(self._host, rep)
1775 self.assertEqual(ret[0], True)
1776 data = json.loads(ret[1])
1777 self.assertTrue(len(data) == 1)
1778 i = 0
1779 y = self.trigger11
1780 for x in data:
1781 i = i + 1
1782 self.assertTrue("timestamp" in x)
1783 x["timestamp"] = x["timestamp"] / 1000
1784 self.assertTrue("name" in x)
1785 self.assertTrue("value" in x)
1786 self.assertTrue("payload" in x)
1787 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1788 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1789 t2 = y["time-stamp"].strip()
1790 self.assertEqual(t1, t2)
1791 self.assertEqual(x["name"], "broadview.bst.egress-uc-queue-group")
1792 dim = x["payload"]
1793 self.assertEqual(dim["asic-id"], y["asic-id"])
1794 self.assertTrue("stat" in dim)
1795 self.assertTrue("queue-group" in dim)
1796 if dim["queue-group"] == 6:
1797 if dim["stat"] == "uc-buffer-count":
1798 self.assertTrue(x["value"] == 2222)
1799 else:
1800 self.assertTrue(dim["stat"] == True)
1801 else:
1802 self.assertTrue(dim["queue-group"] == True)
1803
1804 def test_thresholds1(self):
1805 rep = BSTParser()
1806 rep.process(self.thresholds1)
1807 serializer = BSTToMonasca()
1808 ret = serializer.serialize(self._host, rep)
1809 self.assertEqual(ret[0], True)
1810 data = json.loads(ret[1])
1811 self.assertTrue(len(data) == 1)
1812 data = data[0]
1813 self.assertTrue("timestamp" in data)
1814 data["timestamp"] = data["timestamp"] / 1000
1815 self.assertTrue("name" in data)
1816 self.assertTrue("value" in data)
1817 self.assertTrue("payload" in data)
1818 t1 = datetime.datetime.fromtimestamp(int(data["timestamp"]))
1819 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1820 t2 = self.thresholds1["time-stamp"].strip()
1821 self.assertEqual(t1, t2)
1822 self.assertEqual(data["name"], "broadview.bst.device")
1823 self.assertEqual(data["value"], 46)
1824 dim = data["payload"]
1825 self.assertTrue("asic-id" in dim)
1826 self.assertEqual(dim["asic-id"], self.thresholds1["asic-id"])
1827
1828
1829 def test_thresholds2(self):
1830 rep = BSTParser()
1831 rep.process(self.thresholds2)
1832 serializer = BSTToMonasca()
1833 ret = serializer.serialize(self._host, rep)
1834 self.assertEqual(ret[0], True)
1835 data = json.loads(ret[1])
1836 self.assertTrue(len(data) == 4)
1837 i = 0
1838 y = self.thresholds2
1839 for x in data:
1840 i = i + 1
1841 self.assertTrue("timestamp" in x)
1842 x["timestamp"] = x["timestamp"] / 1000
1843 self.assertTrue("name" in x)
1844 self.assertTrue("value" in x)
1845 self.assertTrue("payload" in x)
1846 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1847 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1848 t2 = y["time-stamp"].strip()
1849 self.assertEqual(t1, t2)
1850 self.assertEqual(x["name"], "broadview.bst.ingress-port-priority-group")
1851 dim = x["payload"]
1852 self.assertEqual(dim["asic-id"], y["asic-id"])
1853 self.assertTrue("stat" in dim)
1854 self.assertTrue("priority-group" in dim)
1855 self.assertTrue("port" in dim)
1856 if dim["port"] == "2":
1857 self.assertEqual(dim["priority-group"], 5)
1858 if dim["stat"] == "um-share-buffer-count":
1859 self.assertTrue(x["value"] == 45500)
1860 elif dim["stat"] == "um-headroom-buffer-count":
1861 self.assertTrue(x["value"] == 44450)
1862 else:
1863 self.assertTrue(dim["stat"] == True)
1864 elif dim["port"] == "3":
1865 self.assertEqual(dim["priority-group"], 6)
1866 if dim["stat"] == "um-share-buffer-count":
1867 self.assertTrue(x["value"] == 25500)
1868 elif dim["stat"] == "um-headroom-buffer-count":
1869 self.assertTrue(x["value"] == 24450)
1870 else:
1871 self.assertTrue(dim["stat"] == True)
1872 else:
1873 self.assertTrue(dim["port"] == True)
1874
1875
1876 def test_thresholds3(self):
1877 rep = BSTParser()
1878 rep.process(self.thresholds3)
1879 serializer = BSTToMonasca()
1880 ret = serializer.serialize(self._host, rep)
1881 self.assertEqual(ret[0], True)
1882 data = json.loads(ret[1])
1883 self.assertTrue(len(data) == 2)
1884 i = 0
1885 y = self.thresholds3
1886 for x in data:
1887 i = i + 1
1888 self.assertTrue("timestamp" in x)
1889 x["timestamp"] = x["timestamp"] / 1000
1890 self.assertTrue("name" in x)
1891 self.assertTrue("value" in x)
1892 self.assertTrue("payload" in x)
1893 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1894 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1895 t2 = y["time-stamp"].strip()
1896 self.assertEqual(t1, t2)
1897 self.assertEqual(x["name"], "broadview.bst.ingress-port-service-pool")
1898 dim = x["payload"]
1899 self.assertEqual(dim["asic-id"], y["asic-id"])
1900 self.assertTrue("stat" in dim)
1901 self.assertTrue("service-pool" in dim)
1902 self.assertTrue("port" in dim)
1903 if dim["port"] == "2":
1904 self.assertEqual(dim["service-pool"], 5)
1905 if dim["stat"] == "um-share-buffer-count":
1906 self.assertTrue(x["value"] == 324)
1907 else:
1908 self.assertTrue(dim["stat"] == True)
1909 elif dim["port"] == "3":
1910 self.assertEqual(dim["service-pool"], 6)
1911 if dim["stat"] == "um-share-buffer-count":
1912 self.assertTrue(x["value"] == 366)
1913 else:
1914 self.assertTrue(dim["stat"] == True)
1915 else:
1916 self.assertTrue(dim["port"] == True)
1917
1918 def test_thresholds4(self):
1919 rep = BSTParser()
1920 rep.process(self.thresholds4)
1921 serializer = BSTToMonasca()
1922 ret = serializer.serialize(self._host, rep)
1923 self.assertEqual(ret[0], True)
1924 data = json.loads(ret[1])
1925 self.assertTrue(len(data) == 2)
1926 i = 0
1927 y = self.thresholds4
1928 for x in data:
1929 i = i + 1
1930 self.assertTrue("timestamp" in x)
1931 x["timestamp"] = x["timestamp"] / 1000
1932 self.assertTrue("name" in x)
1933 self.assertTrue("value" in x)
1934 self.assertTrue("payload" in x)
1935 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1936 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1937 t2 = y["time-stamp"].strip()
1938 self.assertEqual(t1, t2)
1939 self.assertEqual(x["name"], "broadview.bst.ingress-service-pool")
1940 dim = x["payload"]
1941 self.assertEqual(dim["asic-id"], y["asic-id"])
1942 self.assertTrue("stat" in dim)
1943 self.assertTrue("service-pool" in dim)
1944 if dim["service-pool"] == 1:
1945 if dim["stat"] == "um-share-buffer-count":
1946 self.assertTrue(x["value"] == 3240)
1947 else:
1948 self.assertTrue(dim["stat"] == True)
1949 elif dim["service-pool"] == 2:
1950 if dim["stat"] == "um-share-buffer-count":
1951 self.assertTrue(x["value"] == 3660)
1952 else:
1953 self.assertTrue(dim["stat"] == True)
1954 else:
1955 self.assertTrue(dim["service-pool"] == True)
1956
1957
1958 def test_thresholds5(self):
1959 rep = BSTParser()
1960 rep.process(self.thresholds5)
1961 serializer = BSTToMonasca()
1962 ret = serializer.serialize(self._host, rep)
1963 self.assertEqual(ret[0], True)
1964 data = json.loads(ret[1])
1965 self.assertTrue(len(data) == 2)
1966 i = 0
1967 y = self.thresholds5
1968 for x in data:
1969 i = i + 1
1970 self.assertTrue("timestamp" in x)
1971 x["timestamp"] = x["timestamp"] / 1000
1972 self.assertTrue("name" in x)
1973 self.assertTrue("value" in x)
1974 self.assertTrue("payload" in x)
1975 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
1976 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
1977 t2 = y["time-stamp"].strip()
1978 self.assertEqual(t1, t2)
1979 self.assertEqual(x["name"], "broadview.bst.egress-cpu-queue")
1980 dim = x["payload"]
1981 self.assertEqual(dim["asic-id"], y["asic-id"])
1982 self.assertTrue("stat" in dim)
1983 self.assertTrue("queue" in dim)
1984 if dim["queue"] == 3:
1985 if dim["stat"] == "cpu-buffer-count":
1986 self.assertTrue(x["value"] == 4566)
1987 elif dim["stat"] == "cpu-queue-entries":
1988 self.assertTrue(x["value"] == 0)
1989 else:
1990 self.assertTrue(dim["stat"] == True)
1991 else:
1992 self.assertTrue(dim["queue"] == True)
1993
1994 def test_thresholds6(self):
1995 rep = BSTParser()
1996 rep.process(self.thresholds6)
1997 serializer = BSTToMonasca()
1998 ret = serializer.serialize(self._host, rep)
1999 self.assertEqual(ret[0], True)
2000 data = json.loads(ret[1])
2001 self.assertTrue(len(data) == 6)
2002 i = 0
2003 y = self.thresholds6
2004 for x in data:
2005 i = i + 1
2006 self.assertTrue("timestamp" in x)
2007 x["timestamp"] = x["timestamp"] / 1000
2008 self.assertTrue("name" in x)
2009 self.assertTrue("value" in x)
2010 self.assertTrue("payload" in x)
2011 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
2012 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
2013 t2 = y["time-stamp"].strip()
2014 self.assertEqual(t1, t2)
2015 self.assertEqual(x["name"], "broadview.bst.egress-mc-queue")
2016 dim = x["payload"]
2017 self.assertEqual(dim["asic-id"], y["asic-id"])
2018 self.assertTrue("stat" in dim)
2019 self.assertTrue("queue" in dim)
2020 self.assertTrue("port" in dim)
2021 if dim["queue"] == 1:
2022 self.assertTrue(dim["port"] == "1")
2023 if dim["stat"] == "mc-buffer-count":
2024 self.assertTrue(x["value"] == 34)
2025 elif dim["stat"] == "mc-queue-entries":
2026 self.assertTrue(x["value"] == 89)
2027 else:
2028 self.assertTrue(dim["stat"] == True)
2029 elif dim["queue"] == 2:
2030 self.assertTrue(dim["port"] == "4")
2031 if dim["stat"] == "mc-buffer-count":
2032 self.assertTrue(x["value"] == 1244)
2033 elif dim["stat"] == "mc-queue-entries":
2034 self.assertTrue(x["value"] == 0)
2035 else:
2036 self.assertTrue(dim["stat"] == True)
2037 elif dim["queue"] == 3:
2038 self.assertTrue(dim["port"] == "5")
2039 if dim["stat"] == "mc-buffer-count":
2040 self.assertTrue(x["value"] == 0)
2041 elif dim["stat"] == "mc-queue-entries":
2042 self.assertTrue(x["value"] == 3)
2043 else:
2044 self.assertTrue(dim["stat"] == True)
2045 else:
2046 self.assertTrue(dim["queue"] == True)
2047
2048 def test_thresholds7(self):
2049 rep = BSTParser()
2050 rep.process(self.thresholds7)
2051 serializer = BSTToMonasca()
2052 ret = serializer.serialize(self._host, rep)
2053 self.assertEqual(ret[0], True)
2054 data = json.loads(ret[1])
2055 self.assertTrue(len(data) == 6)
2056 i = 0
2057 y = self.thresholds7
2058 for x in data:
2059 i = i + 1
2060 self.assertTrue("timestamp" in x)
2061 x["timestamp"] = x["timestamp"] / 1000
2062 self.assertTrue("name" in x)
2063 self.assertTrue("value" in x)
2064 self.assertTrue("payload" in x)
2065 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
2066 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
2067 t2 = y["time-stamp"].strip()
2068 self.assertEqual(t1, t2)
2069 self.assertEqual(x["name"], "broadview.bst.egress-port-service-pool")
2070 dim = x["payload"]
2071 self.assertEqual(dim["asic-id"], y["asic-id"])
2072 self.assertTrue("stat" in dim)
2073 self.assertTrue("service-pool" in dim)
2074 self.assertTrue("port" in dim)
2075 if dim["service-pool"] == 5:
2076 self.assertTrue(dim["port"] == "2")
2077 if dim["stat"] == "um-share-buffer-count":
2078 self.assertTrue(x["value"] == 0)
2079 elif dim["stat"] == "mc-share-buffer-count":
2080 self.assertTrue(x["value"] == 324)
2081 elif dim["stat"] == "mc-share-queue-entries":
2082 self.assertTrue(x["value"] == 0)
2083 else:
2084 self.assertTrue(dim["stat"] == True)
2085 elif dim["service-pool"] == 6:
2086 self.assertTrue(dim["port"] == "3")
2087 if dim["stat"] == "um-share-buffer-count":
2088 self.assertTrue(x["value"] == 0)
2089 elif dim["stat"] == "mc-share-buffer-count":
2090 self.assertTrue(x["value"] == 366)
2091 elif dim["stat"] == "mc-share-queue-entries":
2092 self.assertTrue(x["value"] == 0)
2093 else:
2094 self.assertTrue(dim["stat"] == True)
2095 else:
2096 self.assertTrue(dim["service-pool"] == True)
2097
2098 def test_thresholds8(self):
2099 rep = BSTParser()
2100 rep.process(self.thresholds8)
2101 serializer = BSTToMonasca()
2102 ret = serializer.serialize(self._host, rep)
2103 self.assertEqual(ret[0], True)
2104 data = json.loads(ret[1])
2105 self.assertTrue(len(data) == 4)
2106 i = 0
2107 y = self.thresholds8
2108 for x in data:
2109 i = i + 1
2110 self.assertTrue("timestamp" in x)
2111 x["timestamp"] = x["timestamp"] / 1000
2112 self.assertTrue("name" in x)
2113 self.assertTrue("value" in x)
2114 self.assertTrue("payload" in x)
2115 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
2116 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
2117 t2 = y["time-stamp"].strip()
2118 self.assertEqual(t1, t2)
2119 self.assertEqual(x["name"], "broadview.bst.egress-rqe-queue")
2120 dim = x["payload"]
2121 self.assertEqual(dim["asic-id"], y["asic-id"])
2122 self.assertTrue("stat" in dim)
2123 self.assertTrue("queue" in dim)
2124 if dim["queue"] == 2:
2125 if dim["stat"] == "rqe-buffer-count":
2126 self.assertTrue(x["value"] == 3333)
2127 elif dim["stat"] == "rqe-queue-entries":
2128 self.assertTrue(x["value"] == 4444)
2129 else:
2130 self.assertTrue(dim["stat"] == True)
2131 elif dim["queue"] == 5:
2132 if dim["stat"] == "rqe-buffer-count":
2133 self.assertTrue(x["value"] == 25)
2134 elif dim["stat"] == "rqe-queue-entries":
2135 self.assertTrue(x["value"] == 45)
2136 else:
2137 self.assertTrue(dim["stat"] == True)
2138 else:
2139 self.assertTrue(dim["queue"] == True)
2140
2141 def test_thresholds9(self):
2142 rep = BSTParser()
2143 rep.process(self.thresholds9)
2144 serializer = BSTToMonasca()
2145 ret = serializer.serialize(self._host, rep)
2146 self.assertEqual(ret[0], True)
2147 data = json.loads(ret[1])
2148 self.assertTrue(len(data) == 6)
2149 i = 0
2150 y = self.thresholds9
2151 for x in data:
2152 i = i + 1
2153 self.assertTrue("timestamp" in x)
2154 x["timestamp"] = x["timestamp"] / 1000
2155 self.assertTrue("name" in x)
2156 self.assertTrue("value" in x)
2157 self.assertTrue("payload" in x)
2158 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
2159 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
2160 t2 = y["time-stamp"].strip()
2161 self.assertEqual(t1, t2)
2162 self.assertEqual(x["name"], "broadview.bst.egress-service-pool")
2163 dim = x["payload"]
2164 self.assertEqual(dim["asic-id"], y["asic-id"])
2165 self.assertTrue("stat" in dim)
2166 self.assertTrue("service-pool" in dim)
2167 if dim["service-pool"] == 2:
2168 if dim["stat"] == "um-share-buffer-count":
2169 self.assertTrue(x["value"] == 0)
2170 elif dim["stat"] == "mc-share-buffer-count":
2171 self.assertTrue(x["value"] == 0)
2172 elif dim["stat"] == "mc-share-queue-entries":
2173 self.assertTrue(x["value"] == 3240)
2174 else:
2175 self.assertTrue(dim["stat"] == True)
2176 elif dim["service-pool"] == 3:
2177 if dim["stat"] == "um-share-buffer-count":
2178 self.assertTrue(x["value"] == 3660)
2179 elif dim["stat"] == "mc-share-buffer-count":
2180 self.assertTrue(x["value"] == 0)
2181 elif dim["stat"] == "mc-share-queue-entries":
2182 self.assertTrue(x["value"] == 0)
2183 else:
2184 self.assertTrue(dim["stat"] == True)
2185 else:
2186 self.assertTrue(dim["service-pool"] == True)
2187
2188 def test_thresholds10(self):
2189 rep = BSTParser()
2190 rep.process(self.thresholds10)
2191 serializer = BSTToMonasca()
2192 ret = serializer.serialize(self._host, rep)
2193 self.assertEqual(ret[0], True)
2194 data = json.loads(ret[1])
2195 self.assertTrue(len(data) == 1)
2196 i = 0
2197 y = self.thresholds10
2198 for x in data:
2199 i = i + 1
2200 self.assertTrue("timestamp" in x)
2201 x["timestamp"] = x["timestamp"] / 1000
2202 self.assertTrue("name" in x)
2203 self.assertTrue("value" in x)
2204 self.assertTrue("payload" in x)
2205 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
2206 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
2207 t2 = y["time-stamp"].strip()
2208 self.assertEqual(t1, t2)
2209 self.assertEqual(x["name"], "broadview.bst.egress-uc-queue")
2210 dim = x["payload"]
2211 self.assertEqual(dim["asic-id"], y["asic-id"])
2212 self.assertTrue("stat" in dim)
2213 self.assertTrue("queue" in dim)
2214 self.assertTrue("port" in dim)
2215 if dim["queue"] == 6:
2216 self.assertEqual(dim["port"], "0")
2217 if dim["stat"] == "uc-queue-buffer-count":
2218 self.assertTrue(x["value"] == 1111)
2219 else:
2220 self.assertTrue(dim["stat"] == True)
2221 else:
2222 self.assertTrue(dim["queue"] == True)
2223
2224 def test_thresholds11(self):
2225 rep = BSTParser()
2226 rep.process(self.thresholds11)
2227 serializer = BSTToMonasca()
2228 ret = serializer.serialize(self._host, rep)
2229 self.assertEqual(ret[0], True)
2230 data = json.loads(ret[1])
2231 self.assertTrue(len(data) == 1)
2232 i = 0
2233 y = self.thresholds11
2234 for x in data:
2235 i = i + 1
2236 self.assertTrue("timestamp" in x)
2237 x["timestamp"] = x["timestamp"] / 1000
2238 self.assertTrue("name" in x)
2239 self.assertTrue("value" in x)
2240 self.assertTrue("payload" in x)
2241 t1 = datetime.datetime.fromtimestamp(int(x["timestamp"]))
2242 t1 = t1.strftime("%Y-%m-%d - %H:%M:%S")
2243 t2 = y["time-stamp"].strip()
2244 self.assertEqual(t1, t2)
2245 self.assertEqual(x["name"], "broadview.bst.egress-uc-queue-group")
2246 dim = x["payload"]
2247 self.assertEqual(dim["asic-id"], y["asic-id"])
2248 self.assertTrue("stat" in dim)
2249 self.assertTrue("queue-group" in dim)
2250 if dim["queue-group"] == 6:
2251 if dim["stat"] == "uc-buffer-count":
2252 self.assertTrue(x["value"] == 2222)
2253 else:
2254 self.assertTrue(dim["stat"] == True)
2255 else:
2256 self.assertTrue(dim["queue-group"] == True)
2257
2258if __name__ == "__main__":
2259 unittest.main()
2260