def executeWmiQuery(wmiClient, Framework, vector, nodeOsh = None): '''WmiClient, Framework, oshVector -> None @deprecated use hostresources_win_wmi instead ''' try: containerOSH = nodeOsh or modeling.createHostOSH(wmiClient.getIpAddress()) wmiProvider = WmiAgentProvider(wmiClient) domainName = _getDomainName(wmiProvider) userResources = UserDiscoverer(wmiProvider).discoverByDomain(domainName) userResources.build(containerOSH) vector.addAll( userResources.report() ) except HostResourceDiscoveryException, hrde: errobj = errorobject.createError(errorcodes.FAILED_GETTING_INFORMATION_NO_PROTOCOL, ['User discovery'], str(hrde)) logger.reportWarningObject(errobj)
myVec.addAll(makeUserOSH(hostCmdbId, token[0], token[4], token[2], token[3], token[5])) return myVec def _getDomainName(wmiProvider): ''' wmiProvider -> str or None @command: select Name from Win32_ComputerSystem @return: domain name in upper case or None @raise Exception: if WMI query failed TODO: move to appropriate discoverer (by WMI) ''' queryBuilder = wmiProvider.getBuilder('Win32_ComputerSystem').addWmiObjectProperties('Name') systems = wmiProvider.getAgent().getWmiData(queryBuilder, timeout = 60000) if systems: return systems[0].Name.upper() def disWinOs(hostOsh, shell): ''' ObjectStateHolder, ShellUtils -> ObjectStateHolderVector @raise HostResourceDiscoveryException if discovery failed @deprecated: use hostresources_win_wmi instead ''' wmiProvider = WmicProvider(shell) try: domainName = _getDomainName(wmiProvider) except Exception, e: logger.debug(str(e)) raise HostResourceDiscoveryException, "Failed to get host domain name. %s" % e else: userResources = UserDiscoverer(wmiProvider).discoverByDomain(domainName) userResources.build(hostOsh) return userResources.report()
def _getDomainName(wmiProvider): ''' wmiProvider -> str or None @command: select Name from Win32_ComputerSystem @return: domain name in upper case or None @raise Exception: if WMI query failed TODO: move to appropriate discoverer (by WMI) ''' queryBuilder = wmiProvider.getBuilder( 'Win32_ComputerSystem').addWmiObjectProperties('Name') systems = wmiProvider.getAgent().getWmiData(queryBuilder, timeout=60000) if systems: return systems[0].Name.upper() def disWinOs(hostOsh, shell): ''' ObjectStateHolder, ShellUtils -> ObjectStateHolderVector @raise HostResourceDiscoveryException if discovery failed @deprecated: use hostresources_win_wmi instead ''' wmiProvider = WmicProvider(shell) try: domainName = _getDomainName(wmiProvider) except Exception, e: logger.debug(str(e)) raise HostResourceDiscoveryException, "Failed to get host domain name. %s" % e else: userResources = UserDiscoverer(wmiProvider).discoverByDomain( domainName) userResources.build(hostOsh) return userResources.report()