def setUp(self):
        super(InterfaceModelerTests, self).setUp()

        self.plugin = interfaces()
        self.device = DeviceProxy()
        self.device.id = "test-InterfacesIp"
        self.device.zInterfaceMapIgnoreNames = ""
        self.device.zInterfaceMapIgnoreTypes = ""
コード例 #2
0
    def setUp(self):
        super(FileSystemModelerTests, self).setUp()

        self.plugin = df()
        self.device = DeviceProxy()
        self.device.id = "test-FileSystemModeler"
        self.device.zFileSystemMapIgnoreNames = ""
        self.device.zFileSystemMapIgnoreTypes = []
コード例 #3
0
    def createDeviceProxy(self, dev, skipModelMsg=''):
        if self.plugins is None:
            self.plugins = {}
            for loader in loadPlugins(self.dmd):
                try:
                    plugin = loader.create()
                    plugin.loader = loader
                    self.plugins[plugin.name()] = plugin
                except Exception as ex:
                    log.exception(ex)

        result = DeviceProxy()
        result.id = dev.getId()
        result.skipModelMsg = skipModelMsg

        if not skipModelMsg:
            if not dev.manageIp:
                dev.setManageIp()
            result.manageIp = dev.manageIp
            result.plugins = []
            for name in dev.zCollectorPlugins:
                plugin = self.plugins.get(name, None)
                log.debug('checking plugin %s for device %s' %
                          (name, dev.getId()))
                if plugin and plugin.condition(dev, log):
                    log.debug('adding plugin %s for device %s' %
                              (name, dev.getId()))
                    result.plugins.append(plugin.loader)
                    plugin.copyDataToProxy(dev, result)
            result.temp_device = dev.isTempDevice()
        return result
コード例 #4
0
ファイル: ModelerService.py プロジェクト: c0ns0le/zenoss-4
class ModelerService(PerformanceConfig):

    plugins = None

    def __init__(self, dmd, instance):
        PerformanceConfig.__init__(self, dmd, instance)
        self.config = self.dmd.Monitors.Performance._getOb(self.instance)
        self.methodPriorityMap = {
            'applyDataMaps': 0.5,
        }

    def createDeviceProxy(self, dev, skipModelMsg=''):
        if self.plugins is None:
            self.plugins = {}
            for loader in loadPlugins(self.dmd):
                try:
                    plugin = loader.create()
                    plugin.loader = loader
                    self.plugins[plugin.name()] = plugin
                except Exception, ex:
                    log.warn(
                        "The following error occurred while loading  %s plugin:\n %s"
                        % (loader.modPath, ex))
                    if "ZenWin.WMIPlugin" in loader.modPath:
                        log.info(
                            "Installing ZenPacks.zenoss.WindowsMonitor will likely resolve this issue."
                        )
                        log.info(
                            "See the install guide for details regarding the Windows Monitoring RPM."
                        )

        result = DeviceProxy()
        result.id = dev.getId()
        result.skipModelMsg = skipModelMsg

        if not skipModelMsg:
            if not dev.manageIp:
                dev.setManageIp()
            result.manageIp = dev.manageIp
            result.plugins = []
            for name in dev.zCollectorPlugins:
                plugin = self.plugins.get(name, None)
                log.debug('checking plugin %s for device %s' %
                          (name, dev.getId()))
                if plugin and plugin.condition(dev, log):
                    log.debug('adding plugin %s for device %s' %
                              (name, dev.getId()))
                    result.plugins.append(plugin.loader)
                    plugin.copyDataToProxy(dev, result)
            result.temp_device = dev.isTempDevice()
        return result
コード例 #5
0
def WmiGet(url, query, properties):
    from Products.DataCollector.DeviceProxy import DeviceProxy
    from WMIPlugin import WMIPlugin

    url  = url.rsplit('@', 1)
    device = DeviceProxy()
    device.zWmiProxy, ns = url[1].split('/', 1)
    device.id = device.zWmiProxy
    device.manageIp = device.zWmiProxy
    url  = url[0].split('//', 1)
    device.zWinUser, device.zWinPassword = url[1].split(':', 1)

    if query.upper().startswith('SELECT '):
        cn = query
        kb = {}
    else:
        try:
            cn, keys = query.split('.', 1)
            kb = {}
            for key in keys.split(','):
                var, val = key.split('=')
                kb[var] = val
        except:
            cn = query
            kb = {}

    wp = WMIPlugin()
    wp.tables = {'t': (cn, kb, ns, properties)}
    wp.includeQualifiers = True
    cl = WMIClient(device=device, plugins=[wp,])
    cl.run()
    reactor.run()
    for plugin, result in cl.getResults():
        if plugin == wp and 't' in result:
            return result['t']
    return result
コード例 #6
0
def WbemGet(url, query, properties):
    from Products.DataCollector.DeviceProxy import DeviceProxy
    from WBEMPlugin import WBEMPlugin

    url = url.rsplit('@', 1)
    device = DeviceProxy()
    device.zWbemProxy, ns = url[1].split('/', 1)
    device.zWbemProxy, device.zWbemPort = device.zWbemProxy.split(':')
    device.id = device.zWbemProxy
    device.manageIp = device.zWbemProxy
    url = url[0].split('//', 1)
    device.zWinUser, device.zWinPassword = url[1].split(':', 1)
    device.zWbemUseSSL = True and url[0] == 'https:' or False

    if query.upper().startswith('SELECT '):
        cn = query
        kb = {}
    else:
        try:
            cn, keys = query.split('.', 1)
            kb = {}
            for key in keys.split(','):
                var, val = key.split('=')
                kb[var] = val
        except:
            cn = query
            kb = {}

    wp = WBEMPlugin()
    wp.tables = {'t': (cn, kb, ns, properties)}
    wp.includeQualifiers = True
    cl = WBEMClient(device=device, plugins=[
        wp,
    ])
    cl.run()
    reactor.run()
    for plugin, result in cl.getResults():
        if plugin == wp and 't' in result:
            return result['t']
    return result
コード例 #7
0
    def afterSetUp(self):
        super(TestModelProcess, self).afterSetUp()

        # Patch to remove DNS dependencies
        def getHostByName(name):
            return MOCK_DNS.get(name)

        def resolve_names(names):
            result = {}
            for name in names:
                result[name] = MOCK_DNS.get(name)
            return defer.maybeDeferred(lambda: result)

        self._real_resolve_names = hostmap.resolve_names
        hostmap.resolve_names = resolve_names

        self._real_getHostByName = Device.getHostByName
        Device.getHostByName = getHostByName

        self.d = DeviceProxy()
        self.d.zOpenStackHostDeviceClass = '/Server/SSH/Linux/NovaHost'
        self.d.zOpenStackRegionName = 'RegionOne'
        self.d.zOpenStackAuthUrl = 'http://1.2.3.4:5000/v2.0'
        self.d.zOpenStackNovaApiHosts = []
        self.d.zOpenStackExtraHosts = []
        self.d.zOpenStackHostMapToId = []
        self.d.zOpenStackHostMapSame = []
        self.d.zOpenStackHostLocalDomain = ''
        self.d.zOpenStackExtraApiEndpoints = []
        self.d.get_host_mappings = {}

        # # Required to prevent erroring out when trying to define viewlets in
        # # ../browser/configure.zcml.
        # import zope.viewlet
        # zcml.load_config('meta.zcml', zope.viewlet)

        # import ZenPacks.zenoss.OpenStackInfrastructure
        # zcml.load_config('configure.zcml', ZenPacks.zenoss.OpenStackInfrastructure)
        self.data = self._loadTestData()
コード例 #8
0
 def afterSetUp(self):
     self.device = DeviceProxy()
     self.device.id = "test-device"
     self.plugin = os_release()