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