From 51bc9b51362ca76011bb201353de5354907332d1 Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Tue, 3 Jul 2018 09:14:35 +0100 Subject: Make "IterationIPC" MQ producer for VNF control messages "IterationIPC" runner class is a consumer for MQ aware VNFs. A MQ aware traffic generator can send "started", "finished" and "iteration" messages. This feature implements a MQ producer in the runner in order to send messages to the VNFs. The messages implemented are: - "start_iteration" - "stop_iteration" JIRA: YARDSTICK-1286 Change-Id: I706f9a9dda5e5beed52231be7d71452945a7dbed Signed-off-by: Rodolfo Alonso Hernandez --- yardstick/common/messaging/__init__.py | 19 +++++++------------ yardstick/common/messaging/payloads.py | 8 ++++++++ 2 files changed, 15 insertions(+), 12 deletions(-) (limited to 'yardstick/common') diff --git a/yardstick/common/messaging/__init__.py b/yardstick/common/messaging/__init__.py index dc8c51b70..bd700d9b1 100644 --- a/yardstick/common/messaging/__init__.py +++ b/yardstick/common/messaging/__init__.py @@ -1,14 +1,3 @@ -# Copyright (c) 2018 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. @@ -29,10 +18,16 @@ RPC_SERVER_EXECUTOR = 'threading' # Topics. TOPIC_TG = 'topic_traffic_generator' +TOPIC_RUNNER = 'topic_runner' # Methods. # Traffic generator consumers methods. Names must match the methods implemented -# in the consumer endpoint class, ``RunnerIterationIPCEndpoint``. +# in the consumer endpoint class. TG_METHOD_STARTED = 'tg_method_started' TG_METHOD_FINISHED = 'tg_method_finished' TG_METHOD_ITERATION = 'tg_method_iteration' + +# Runner consumers methods. Names must match the methods implemented in the +# consumer endpoint class. +RUNNER_METHOD_START_ITERATION = "runner_method_start_iteration" +RUNNER_METHOD_STOP_ITERATION = "runner_method_stop_iteration" diff --git a/yardstick/common/messaging/payloads.py b/yardstick/common/messaging/payloads.py index c59c87536..8ede1e58e 100644 --- a/yardstick/common/messaging/payloads.py +++ b/yardstick/common/messaging/payloads.py @@ -63,3 +63,11 @@ class TrafficGeneratorPayload(Payload): # injection. The content will depend on the generator and the # traffic type. } + + +class RunnerPayload(Payload): + """Base runner payload class""" + REQUIRED_FIELDS = { + 'version', # (str) version of the payload transmitted. + 'data' # (dict) generic container of data to be used if needed. + } -- cgit 1.2.3-korg