From ba6d4d4a57e67a7cfb5a94803ff853289a7d129f Mon Sep 17 00:00:00 2001 From: Marin Atanasov Nikolov Date: Fri, 12 Sep 2014 11:18:54 +0300 Subject: [PATCH] Initial commit of the vpoller.helpers.cclient helper module for C clients --- src/vpoller/helpers/__init__.py | 2 +- src/vpoller/helpers/cclient.py | 60 +++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 src/vpoller/helpers/cclient.py diff --git a/src/vpoller/helpers/__init__.py b/src/vpoller/helpers/__init__.py index 4888ce0..d1ea493 100644 --- a/src/vpoller/helpers/__init__.py +++ b/src/vpoller/helpers/__init__.py @@ -1 +1 @@ -__all__ = ['zabbix', 'czabbix', 'csvhelper'] +__all__ = ['zabbix', 'czabbix', , 'cclient', 'csvhelper'] diff --git a/src/vpoller/helpers/cclient.py b/src/vpoller/helpers/cclient.py new file mode 100644 index 0000000..1594269 --- /dev/null +++ b/src/vpoller/helpers/cclient.py @@ -0,0 +1,60 @@ +# Copyright (c) 2013-2014 Marin Atanasov Nikolov +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer +# in this position and unchanged. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +""" +vPoller Helper module for C clients + +This module is to be used by vPoller C clients only. + +""" + + +class HelperAgent(object): + """ + HelperAgent class of the vPoller Helper for C clients + + """ + def __init__(self, msg, data): + """ + Initializes a new HelperAgent object + + Args: + msg (dict): The original request message + data (dict): The data to be processed by the helper + + """ + self.msg = msg + self.data = data + + def run(self): + """ + Main Helper method + + NULL-terminates the data, so that C clients can + properly get the data we send to them. + + """ + result = json.dumps(self.data) + + return result + '\0'