############################################################################## # # Copyright (C) Zenoss, Inc. 2017, all rights reserved. # # This content is made available according to terms specified in # License.zenoss under the directory where your Zenoss product is installed. # ############################################################################## from ZenPacks.zenoss.WBEM.utils import addLocalLibPath addLocalLibPath() from pywbem import CIMError from pywbem import twisted_client try: from elementtree.ElementTree import fromstring except ImportError, arg: from xml.etree.ElementTree import fromstring class HandleResponseMixin(): """Override base parseErrorAndResponse from pywbem.twisted_client module to catch XML parsing error""" def parseErrorAndResponse(self, data): """Parse returned XML for errors, then convert into appropriate Python objects.""" try: xml = fromstring(data) except Exception: self.deferred.errback( CIMError(
from Products.Zuul.form import schema from Products.Zuul.infos import ProxyProperty from Products.Zuul.infos.template import RRDDataSourceInfo from Products.Zuul.interfaces import IRRDDataSourceInfo from Products.Zuul.utils import ZuulMessageFactory as _t from ZenPacks.zenoss.PythonCollector.datasources.PythonDataSource \ import PythonDataSource, PythonDataSourcePlugin from ZenPacks.zenoss.WBEM.utils import ( addLocalLibPath, result_errmsg, convert_to_timestamp, ) addLocalLibPath() from pywbem import CIMDateTime from pywbem.twisted_agent import ( ExecQuery, OpenEnumerateInstances, ) CIM_CLASSNAME = re.compile(r'from\s+([\w_]+)', re.I) def get_classname(query): """Extract class name from a CQL query""" match = CIM_CLASSNAME.findall(query) return match[0] if match else ''