def process(self, context): applicationComponent = context.application.getApplicationComponent() applicationOsh = context.application.getOsh() instance_name = self.resolveInstanceName(applicationComponent, context.application) if (instance_name is None) or (len(instance_name.strip()) == 0): applicationOsh.setObjectClass('application') logger.debug('Failed to identify instance name, creating software element instead of sqlserver strong type') return host_name = self.resolveHostName(applicationComponent, instance_name) logger.debug('host name is: %s' % host_name) if (host_name is None) or (len(host_name.strip()) == 0): applicationOsh.setObjectClass('application') logger.debug('Failed to identify host_name, creating software element instead of sqlserver strong type') return if instance_name == MSSQLServerInstancesPlugin.DEFAULT_SQL_INSTRANCE: logger.debug('Found default ms sql server instance, using host name') modeling.setAdditionalKeyAttribute(applicationOsh, 'database_dbsid', host_name.upper()) self.handleMsClusteredInstance(context, applicationOsh) else: logger.debug('Found named instance ', instance_name) modeling.setAdditionalKeyAttribute(applicationOsh, 'database_dbsid', host_name.upper() + '\\' + instance_name) self.handleMsClusteredInstance(context, applicationOsh) applicationOsh.setStringAttribute('database_dbtype', 'sqlserver') buildNumber = None if self.__client.getClientType() == ClientsConsts.WMI_PROTOCOL_NAME: buildNumber = self.getBuildNumberFromRegByWmi(instance_name) else: buildNumber = self.getBuildNumberFromReg(instance_name) buildNumber = buildNumber and buildNumber.strip() if buildNumber: applicationOsh.setAttribute('build_number', buildNumber)
def createListenerOSH(hostOSH, listenedIPs, listenerName, listenerVersion): if listenerName: listenerOSH = modeling.createApplicationOSH('oracle_listener', 'TNS Listener', hostOSH, 'Database', 'oracle_corp') if listenedIPs: listenerOSH.setAttribute('listened_ips',listenedIPs) modeling.setAdditionalKeyAttribute(listenerOSH, 'listener_name', listenerName) if listenerVersion: listenerOSH.setAttribute('application_version', listenerVersion) return listenerOSH else: logger.error('Failed to create Listener OSH. Listener name is not specified.')
def addOshToVector(self, resultVector): nlbNodeOSH = ObjectStateHolder('nlb_clustersoftware') nlbNodeOSH.setAttribute('vendor', 'microsoft_corp') nlbNodeOSH.setIntegerAttribute('host_priority', self.priority) nlbNodeOSH.setStringAttribute('cluster_mode_on_start', self.modeOnStart) nlbNodeOSH.setStringAttribute('data_name', 'NLB Cluster SW') clusterIp = self.nlbClusterOsh.getAttribute('cluster_ip_address').getValue() modeling.setAdditionalKeyAttribute(nlbNodeOSH, 'cluster_ip_address', clusterIp) resultVector.add(self.hostOSH) nlbNodeOSH.setContainer(self.hostOSH) if self.dedicatedIpOSH: resultVector.add(self.dedicatedIpOSH) resultVector.add(modeling.createLinkOSH('contained', self.hostOSH, self.dedicatedIpOSH)) resultVector.add(nlbNodeOSH) resultVector.add(modeling.createLinkOSH('member', self.nlbClusterOsh, nlbNodeOSH))
def _reportIisTopology(self, result, discoverSharePointUrls = 0, reportIntermediateWebService = 1): """ Adds IIS topology into vector. Reports: nt, iis, iisapppool, iiswebsite, ipserver, url ObjectStateHolderVector, bool->None """ ipToIis = {} for ws in self._webServices: if ipToIis.has_key(ws.ip): iisHostOsh, iisOsh, iisWebService = ipToIis[ws.ip] else: iisHostOsh = modeling.createHostOSH(ws.ip, 'nt') #review>> why to build in report iisOsh = modeling.createWebServerOSH('Microsoft-IIS', 0, None, iisHostOsh, 0) if reportIntermediateWebService: iisWebService = ObjectStateHolder('iiswebservice') modeling.setAdditionalKeyAttribute(iisWebService, 'data_name', 'IIsWebService') iisWebService.setContainer(iisOsh) result.add(iisWebService) else: iisWebService = iisOsh result.add(iisHostOsh) result.add(iisOsh) link = modeling.createLinkOSH('member', self._farm.osh, iisOsh) result.add(link) ipToIis[ws.ip] = (iisHostOsh, iisOsh, iisWebService) appPoolOshList = [] for appPool in ws.applicationPoolNames: iisapppoolOsh = ObjectStateHolder('iisapppool') iisapppoolOsh.setAttribute('data_name', appPool) iisapppoolOsh.setContainer(iisOsh) result.add(iisapppoolOsh) appPoolOshList.append(iisapppoolOsh) for webApp in ws.webApplications: iiswebsiteOSH = ObjectStateHolder('iiswebsite') iiswebsiteOSH.setAttribute('data_name', webApp.name) iiswebsiteOSH.setContainer(iisWebService) result.add(iiswebsiteOSH) for iisapppoolOsh in appPoolOshList: link = modeling.createLinkOSH('use', iiswebsiteOSH, iisapppoolOsh) result.add(link) if (discoverSharePointUrls): for site in webApp.siteNames: urlOsh = modeling.createUrlOsh(iisHostOsh, site) result.add(urlOsh) link = modeling.createLinkOSH('contained', iiswebsiteOSH, urlOsh) result.add(link)
def process(self, context): applicationComponent = context.application.getApplicationComponent() applicationOsh = context.application.getOsh() instance_name = self.resolveInstanceName(applicationComponent, context.application) if (instance_name is None) or (len(instance_name.strip()) == 0): applicationOsh.setObjectClass('application') logger.debug( 'Failed to identify instance name, creating software element instead of sqlserver strong type' ) return host_name = self.resolveHostName(applicationComponent, instance_name) logger.debug('host name is: %s' % host_name) if (host_name is None) or (len(host_name.strip()) == 0): applicationOsh.setObjectClass('application') logger.debug( 'Failed to identify host_name, creating software element instead of sqlserver strong type' ) return if instance_name == MSSQLServerInstancesPlugin.DEFAULT_SQL_INSTRANCE: logger.debug( 'Found default ms sql server instance, using host name') modeling.setAdditionalKeyAttribute(applicationOsh, 'database_dbsid', host_name.upper()) self.handleMsClusteredInstance(context, applicationOsh) else: logger.debug('Found named instance ', instance_name) modeling.setAdditionalKeyAttribute( applicationOsh, 'database_dbsid', host_name.upper() + '\\' + instance_name) self.handleMsClusteredInstance(context, applicationOsh) applicationOsh.setStringAttribute('database_dbtype', 'sqlserver') buildNumber = None if self.__client.getClientType() == ClientsConsts.WMI_PROTOCOL_NAME: buildNumber = self.getBuildNumberFromRegByWmi(instance_name) else: buildNumber = self.getBuildNumberFromReg(instance_name) buildNumber = buildNumber and buildNumber.strip() if buildNumber: applicationOsh.setAttribute('build_number', buildNumber)
def addOshToVector(self, resultVector): nlbNodeOSH = ObjectStateHolder('nlb_clustersoftware') nlbNodeOSH.setAttribute('vendor', 'microsoft_corp') nlbNodeOSH.setIntegerAttribute('host_priority', self.priority) nlbNodeOSH.setStringAttribute('cluster_mode_on_start', self.modeOnStart) nlbNodeOSH.setStringAttribute('data_name', 'NLB Cluster SW') clusterIp = self.nlbClusterOsh.getAttribute( 'cluster_ip_address').getValue() modeling.setAdditionalKeyAttribute(nlbNodeOSH, 'cluster_ip_address', clusterIp) resultVector.add(self.hostOSH) nlbNodeOSH.setContainer(self.hostOSH) if self.dedicatedIpOSH: resultVector.add(self.dedicatedIpOSH) resultVector.add( modeling.createLinkOSH('contained', self.hostOSH, self.dedicatedIpOSH)) resultVector.add(nlbNodeOSH) resultVector.add( modeling.createLinkOSH('member', self.nlbClusterOsh, nlbNodeOSH))