From 77607bb07397b27f2780d715514bbbc0b409ac01 Mon Sep 17 00:00:00 2001 From: Sachin Bansal Date: Fri, 29 May 2015 17:12:28 -0700 Subject: [PATCH] Avoid using peek since it is only available in gevent >= 1.0, which is not available for centos 6 Change-Id: I9cd2320ae2455931392798e8452fe6118a65e7ac Partial-Bug: #1460211 (cherry picked from commit d7a3f872fd8aed734b9754fca20b336af49d4548) --- src/config/api-server/utils.py | 8 ++++---- src/config/api-server/vnc_cfg_ifmap.py | 25 +++++++++++++------------ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/config/api-server/utils.py b/src/config/api-server/utils.py index 7aa3e561304..579834770ce 100644 --- a/src/config/api-server/utils.py +++ b/src/config/api-server/utils.py @@ -124,11 +124,11 @@ def parse_args(args_str): parser.add_argument( "--ifmap_server_port", help="Port of ifmap server") parser.add_argument( - "--ifmap_queue_size", help="Size of the queue that holds pending " - "messages to be sent to ifmap server") + "--ifmap_queue_size", type=int, help="Size of the queue that holds " + "pending messages to be sent to ifmap server") parser.add_argument( - "--ifmap_max_message_size", help="Maximum size of message sent to " - "ifmap server") + "--ifmap_max_message_size", type=int, help="Maximum size of message " + "sent to ifmap server") # TODO should be from certificate parser.add_argument( diff --git a/src/config/api-server/vnc_cfg_ifmap.py b/src/config/api-server/vnc_cfg_ifmap.py index 1e54b07f0b0..8a038ea0307 100644 --- a/src/config/api-server/vnc_cfg_ifmap.py +++ b/src/config/api-server/vnc_cfg_ifmap.py @@ -219,25 +219,26 @@ def _ifmap_dequeue_task(self): self.config_log(tb, level=SandeshLevel.SYS_ERROR) def _publish_to_ifmap_dequeue(self): - while self._queue.peek(): + while True: + (oper, oper_body, do_trace) = self._queue.get() publish_discovery = False requests = [] requests_len = 0 traces = [] while True: + if oper == 'publish_discovery': + publish_discovery = True + break + if do_trace: + trace = self._generate_ifmap_trace(oper, oper_body) + traces.append(trace) + requests.append(oper_body) + requests_len += len(oper_body) + if (requests_len > + self._get_api_server()._args.ifmap_max_message_size): + break try: (oper, oper_body, do_trace) = self._queue.get_nowait() - if oper == 'publish_discovery': - publish_discovery = True - break - if do_trace: - trace = self._generate_ifmap_trace(oper, oper_body) - traces.append(trace) - requests.append(oper_body) - requests_len += len(oper_body) - if (requests_len > - self._get_api_server()._args.ifmap_max_message_size): - break except Empty: break ok = True