コード例 #1
0
def DiscoveryMain(Framework):
	OSHVResult = ObjectStateHolderVector()	
	exchangeServerId = Framework.getDestinationAttribute('id')
	exchangeServerOsh = ms_exchange_utils.restoreExchangeServerOSH(exchangeServerId)
	
	try:
		shellClient = Framework.createClient()
		client = PowerShellClient(shellClient, Framework)
		try:
			ExchangeServer = client.executeScenario("Exchange_Server_2007_Discovery.ps1")
			
			exchangeSystemName = extractOrganizationNameFromDn(ExchangeServer.ExchangeLegacyDN)
			exchangeSystemOsh = ObjectStateHolder('exchangesystem')
			exchangeSystemOsh.setAttribute('data_name', exchangeSystemName)
			modeling.setAppSystemVendor(exchangeSystemOsh)
			OSHVResult.add(exchangeSystemOsh)
			OSHVResult.add(modeling.createLinkOSH('member', exchangeSystemOsh, exchangeServerOsh))
			adminGroupName = extractAdminGrouptFromDn(ExchangeServer.ExchangeLegacyDN)
			if adminGroupName and exchangeSystemOsh:
				adminGroupOsh = ObjectStateHolder('exchange_administrative_group')
				adminGroupOsh.setAttribute('data_name' , adminGroupName)
				adminGroupOsh.setContainer(exchangeSystemOsh)
				OSHVResult.add(adminGroupOsh)
				OSHVResult.add(modeling.createLinkOSH('member', adminGroupOsh, exchangeServerOsh))

			createServerRoles(exchangeServerOsh, ExchangeServer.ServerRole, OSHVResult)
			dagList = []
			clusteredMailBox = None
			try:
				dagList = ExchangeServer.dagList
				if not dagList:
					raise ValueError('Failed getting DAG information')
			except:
				logger.debugException('')
			else:
				OSHVResult.addAll(TopologyBuilder(None, None, None, None).buildDagRelatedTopology(exchangeServerOsh, dagList))
				
			try:
				clusteredMailBox = ExchangeServer.clusteredMailBox
				if not clusteredMailBox:
					raise ValueError('Failed getting Clustered Mailbox')
			except:
				logger.debugException('')
			else:
				setattr(clusteredMailBox, "exchOrgName", exchangeSystemName)
				OSHVResult.addAll(TopologyBuilder(None, None, None, None).buildClusteredMailBoxRelatedTopology(exchangeServerOsh, clusteredMailBox))
			OSHVResult.add(exchangeServerOsh)
		finally:
			client.close()
	except Exception, ex:
		logger.debugException('')
		strException = str(ex.getMessage())
		errormessages.resolveAndReport(strException, PROTOCOL_NAME, Framework)
コード例 #2
0
def DiscoveryMain(Framework):
    OSHVResult = ObjectStateHolderVector()

    exchangeServerId = Framework.getDestinationAttribute('id')
    fqdn = Framework.getDestinationAttribute('fqdn')
    hostName = getHostName(Framework)

    exchangeServerOsh = ms_exchange_utils.restoreExchangeServerOSH(
        exchangeServerId)

    props = Properties()
    props.put(AgentConstants.PROP_WMI_NAMESPACE, WMI_NAMESPACE)
    try:
        wmiClient = Framework.createClient(props)
        wmiAgent = WmiAgent(wmiClient, Framework)
        try:
            exchangeDiscoverer = ExchangeDiscoverer(wmiAgent,
                                                    exchangeServerOsh,
                                                    Framework, OSHVResult,
                                                    hostName)
            try:
                exchangeDiscoverer.doExchangeSystem(fqdn)
                exchangeDiscoverer.doFolderTrees()
            except:
                errorMsg = 'Failed to discover folder trees and public folders'
                logger.warnException(errorMsg)
                errobj = errorobject.createError(
                    errorcodes.FAILED_DISCOVERING_RESOURCE,
                    ['folder trees and public folders'], errorMsg)
                logger.reportWarningObject(errobj)

            if not exchangeDiscoverer.objectsDiscovered:
                errobj = errorobject.createError(
                    errorcodes.MS_EXCHANGE_OBJECTS_NOT_FOUND, None,
                    'Microsoft Exchange objects not found in discovery')
                logger.reportErrorObject(errobj)
        finally:
            wmiClient.close()
    except:
        exInfo = logger.prepareJythonStackTrace('')
        errormessages.resolveAndReport(exInfo, WMI_PROTOCOL, Framework)

    return OSHVResult
コード例 #3
0
def DiscoveryMain(Framework):
    OSHVResult = ObjectStateHolderVector()
    exchangeServerId = Framework.getDestinationAttribute('id')
    exchangeServerOsh = ms_exchange_utils.restoreExchangeServerOSH(
        exchangeServerId)

    try:
        shellClient = Framework.createClient()
        client = PowerShellClient(shellClient, Framework)
        try:
            ExchangeServer = client.executeScenario(
                "Exchange_Server_2007_Discovery.ps1")

            exchangeSystemName = extractOrganizationNameFromDn(
                ExchangeServer.ExchangeLegacyDN)
            exchangeSystemOsh = ObjectStateHolder('exchangesystem')
            exchangeSystemOsh.setAttribute('data_name', exchangeSystemName)
            modeling.setAppSystemVendor(exchangeSystemOsh)
            OSHVResult.add(exchangeSystemOsh)
            OSHVResult.add(
                modeling.createLinkOSH('member', exchangeSystemOsh,
                                       exchangeServerOsh))
            adminGroupName = extractAdminGrouptFromDn(
                ExchangeServer.ExchangeLegacyDN)
            if adminGroupName and exchangeSystemOsh:
                adminGroupOsh = ObjectStateHolder(
                    'exchange_administrative_group')
                adminGroupOsh.setAttribute('data_name', adminGroupName)
                adminGroupOsh.setContainer(exchangeSystemOsh)
                OSHVResult.add(adminGroupOsh)
                OSHVResult.add(
                    modeling.createLinkOSH('member', adminGroupOsh,
                                           exchangeServerOsh))

            createServerRoles(exchangeServerOsh, ExchangeServer.ServerRole,
                              OSHVResult)
            dagList = []
            clusteredMailBox = None
            try:
                dagList = ExchangeServer.dagList
                if not dagList:
                    raise ValueError('Failed getting DAG information')
            except:
                logger.debugException('')
            else:
                OSHVResult.addAll(
                    TopologyBuilder(None, None, None,
                                    None).buildDagRelatedTopology(
                                        exchangeServerOsh, dagList))

            try:
                clusteredMailBox = ExchangeServer.clusteredMailBox
                if not clusteredMailBox:
                    raise ValueError('Failed getting Clustered Mailbox')
            except:
                logger.debugException('')
            else:
                setattr(clusteredMailBox, "exchOrgName", exchangeSystemName)
                OSHVResult.addAll(
                    TopologyBuilder(None, None, None,
                                    None).buildClusteredMailBoxRelatedTopology(
                                        exchangeServerOsh, clusteredMailBox))
            OSHVResult.add(exchangeServerOsh)
        finally:
            client.close()
    except Exception, ex:
        logger.debugException('')
        strException = str(ex.getMessage())
        errormessages.resolveAndReport(strException, PROTOCOL_NAME, Framework)