本文整理汇总了Python中modeling.createOshByCmdbIdString函数的典型用法代码示例。如果您正苦于以下问题:Python createOshByCmdbIdString函数的具体用法?Python createOshByCmdbIdString怎么用?Python createOshByCmdbIdString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了createOshByCmdbIdString函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DiscoveryMain
def DiscoveryMain(Framework):
OSHVResult = ObjectStateHolderVector()
client = Framework.createClient()
shell = shellutils.ShellFactory().createShell(client)
# Image Id -> Image OSH
imageDict = dict()
# Container Id -> Container OSH
containerDict = dict()
# Container Id -> linked Container Id
containerLinks = dict()
# Node from Trigger
nodeId = Framework.getTriggerCIData('hostId')
nodeOSH = modeling.createOshByCmdbIdString("node", nodeId)
OSHVResult.add(nodeOSH)
# Trigger CI Running Software docker daemon
dockerId = Framework.getTriggerCIData("triggerId")
dockerDaemonOSH = modeling.createOshByCmdbIdString("docker_daemon", dockerId)
OSHVResult.add(dockerDaemonOSH)
# Docker version for docker daemon
versionOutput = shell.execCmd('docker -v')
if shell.getLastCmdReturnCode() == 0:
dockerDaemonOSH.setAttribute('version', versionOutput.strip())
else:
Framework.reportError('Failed in command: docker version.')
#Get Filesystem
filesystemDict = dict()
skipDockerVolume = getFilesystem(shell, filesystemDict)
# Docker
dockerOSH = ObjectStateHolder('docker')
dockerOSH.setAttribute('name', 'Docker')
dockerOSH.setContainer(nodeOSH)
OSHVResult.add(dockerOSH)
dockerDaemonLink = modeling.createLinkOSH('membership', dockerOSH, dockerDaemonOSH)
OSHVResult.add(dockerDaemonLink)
dockerNodeLink = modeling.createLinkOSH('dependency', dockerOSH, nodeOSH)
OSHVResult.add(dockerNodeLink)
discoverDockerImage(shell, imageDict, nodeOSH, OSHVResult, Framework)
discoverDockerContainer(shell, skipDockerVolume, filesystemDict, containerDict, containerLinks, imageDict, dockerDaemonOSH, nodeOSH, client, Framework, OSHVResult)
return OSHVResult
示例2: get_common_topology_context
def get_common_topology_context(discoverer, dnsresolver, installpath, config):
discovererRegistry = {}
discovererRegistry[baseCits.node] = partial(discoverer.getDeploymentHosts,
Sfn(dnsresolver.resolve_ips))
discovererRegistry[baseCits.ip] = hana_host.Host.ips.fget
discovererRegistry[cits.hanadb] = discoverer.getHanaDatabaseServer
discovererRegistry[cits.hanadbInstance] = lambda host: discoverer.getHanaDatabaseInstance(host.name)
discovererRegistry[baseCits.configFile] = lambda dbServer: discoverer.getHanaDbConfigFiles()
discovererRegistry[baseCits.ipServiceEndpoint] = lambda host: discoverer.getHanaDbInstanceEndpoints(host.name)
discovererRegistry[dbCits.schema] = lambda dbServer: discoverer.getHanaDbSchemas()
discovererRegistry[dbCits.user] = lambda dbServer: discoverer.getHanaDbUsers()
discovererRegistry[dbCits.dataFile] = lambda db_instance: discoverer.getHanaDbDataFiles(db_instance)
discovererRegistry[dbCits.logFile] = lambda db_instance: discoverer.getHanaDbLogFiles(db_instance)
discovererRegistry[dbCits.traceFile] = lambda db_instance: discoverer.getHanaDbTraceFiles(db_instance)
# linkage condition
discovererRegistry[(dbCits.user, baseCits.ownership, dbCits.schema)] = lambda user, schema: schema.owner == user.name
discovererRegistry[(cits.hanadbInstance, baseCits.usage, baseCits.ipServiceEndpoint)] = lambda hana_instance, endpoint: endpoint.getAddress() == hana_instance.hostname and endpoint.getPortType() == hana.PortTypeEnum.HANA
discovererRegistry[(cits.hanadb, baseCits.membership, cits.hanadbInstance)] = lambda hanaDb, hanaInstance: True
discovererRegistry[(baseCits.node, baseCits.containment, baseCits.ip)] = lambda host, ip: ip in host.ips
pdoBuilderRegistry = {}
pdoBuilderRegistry[cits.hanadbInstance] = lambda instance: buildDatabaseInstancePdo(instance, installpath, sid=config.sid)
pdoBuilderRegistry[dbCits.user] = buildDbUserPdoFromDatabaseUser
pdoBuilderRegistry[baseCits.ipServiceEndpoint] = partial(buildEndpointPdoFromEndpoint, Sfn(dnsresolver.resolve_ips))
#Should be coming from core hana_topology module
baseTopologyBuilderRegistry = {
# ignore the name as it is could be an alias and not a real hostname
baseCits.node: lambda node_pdo: hana_host.Builder().build_host(node_pdo._replace(name=None)),
baseCits.ip: modeling.createIpOSH,
baseCits.configFile: fptools.partiallyApply(modeling.createConfigurationDocumentOshByFile, fptools._, None),
baseCits.ipServiceEndpoint: netutils.ServiceEndpointBuilder().visitEndpoint
}
linkReporter = hana.LinkReporter()
linkReporterRegistry = {
baseCits.containment: linkReporter.reportContainment,
baseCits.composition: linkReporter.reportComposition,
baseCits.membership: lambda do1, osh1, do2, osh2: linkReporter.reportMembership(osh1, osh2),
baseCits.ownership: lambda do1, osh1, do2, osh2: linkReporter.reportOwnership(osh1, osh2),
baseCits.usage: lambda do1, osh1, do2, osh2: linkReporter.reportUsage(osh1, osh2),
baseCits.replicated: hana.DatabaseTopologyReporter().reportReplication,
}
topologyBuilderRegistry = {}
topologyBuilderRegistry.update(baseTopologyBuilderRegistry)
topologyBuilderRegistry.update(linkReporterRegistry)
dbTopologyBuilder = hana.DatabaseTopologyBuilder()
topologyBuilderRegistry[cits.hanadb] = lambda _: modeling.createOshByCmdbIdString(cits.hanadb, config.hanadb_cmdbid)
topologyBuilderRegistry[cits.hanadbInstance] = dbTopologyBuilder.buildDatabaseInstanceOsh
topologyBuilderRegistry[dbCits.schema] = dbTopologyBuilder.buildSchemaOsh
topologyBuilderRegistry[dbCits.user] = dbTopologyBuilder.buildUserOsh
topologyBuilderRegistry[dbCits.dataFile] = dbTopologyBuilder.buildDataFileOsh
topologyBuilderRegistry[dbCits.logFile] = dbTopologyBuilder.buildLogFileOsh
topologyBuilderRegistry[dbCits.traceFile] = dbTopologyBuilder.buildTraceFileOsh
return discovererRegistry, pdoBuilderRegistry, topologyBuilderRegistry
示例3: reportDeleteConnectedShell
def reportDeleteConnectedShell(Framework):
shellId = Framework.getDestinationAttribute('shellId')
shellOsh = modeling.createOshByCmdbIdString('shell', shellId)
Framework.deleteObject(shellOsh)
Framework.flushObjects()
Framework.setStepExecutionStatus(WorkflowStepStatus.SUCCESS)
示例4: _createHostOsh
def _createHostOsh(self):
''' method creates containing host OSH depending on settings in XML and discovered data '''
appComponent = self.getApplicationComponent()
if appComponent.isClustered():
# clustered applications should use weak hosts by IP
hostIp = self._applicationIp
if hostIp and ip_addr.IPAddress(hostIp).get_is_private():
hostIp = self.getConnectionIp()
if not hostIp:
raise applications.ApplicationSignatureException("Cannot report application since no valid host IP is found")
logger.debug(" -- clustered application uses host by IP '%s'" % hostIp)
self.hostOsh = modeling.createHostOSH(hostIp)
else:
# non-clustered applications use host by hostId
self.hostOsh = self.getApplicationComponent().getHostOsh()
logger.debug(self.hostOsh)
if self.hostOsh:
logger.debug(" -- application uses host by Host OSH")
else:
logger.debug(" -- application uses host by CMDB ID")
hostId = self.getApplicationComponent().getHostId()
if hostId:
self.hostOsh = modeling.createOshByCmdbIdString('host', hostId)
示例5: DiscoveryMain
def DiscoveryMain(Framework):
OSHVResult = ObjectStateHolderVector()
jobId = Framework.getDiscoveryJobId()
host_id = Framework.getDestinationAttribute('id')
host_name = Framework.getTriggerCIData('host_name')
dnsServers = Framework.getTriggerCIDataAsList('dnsServers') or None
try:
host_name = host_name.split(" ")
ips = pi_utils.getIPs(host_name[0], Framework)
if not ips:
raise ValueError()
hostOSH = modeling.createOshByCmdbIdString('node', host_id)
modeling.addHostAttributes(hostOSH, None, host_name[0])
#OSHVResult.add(hostOSH)
for ip in ips:
ipRes = pi_utils.getIPOSHV(Framework, ip, None, dnsServers, False, True)
if ipRes.size() > 0:
OSHVResult.add(modeling.createLinkOSH('containment',hostOSH,modeling.createIpOSH(ip)))
OSHVResult.addAll(ipRes)
if OSHVResult.size() <=0:
raise ValueError()
except Exception, e:
msg = logger.prepareJythonStackTrace("Error getting IPs for %s: " % (host_name), e)
errormessages.resolveAndReport(msg, jobId, Framework)
logger.error(msg)
示例6: DiscoveryMain
def DiscoveryMain(Framework):
OSHVResult = ObjectStateHolderVector()
logger.info('Starting HACMP Applications')
hostIP = Framework.getDestinationAttribute('ip_address')
logger.debug ('Host IP: ',hostIP)
cluster = Framework.getDestinationAttribute('cluster')
hostOS = Framework.getDestinationAttribute('host_os')
hostOS = hostOS or 'NA'
protocolName = Framework.getDestinationAttribute('Protocol')
hostId = Framework.getDestinationAttribute('hostId')
## Get Parameter Section
cldisp_command = Framework.getParameter('cldisp_command') or 'cldisp'
cllsif_command = Framework.getParameter('cllsif_command') or 'cllsif'
try:
client = Framework.createClient()
shell = ShellUtils(client)
# If we get good client connection , run the client commands to get the Application information for the cluster
HostOSH = modeling.createOshByCmdbIdString('host', hostId)
ClusterOSH = getclusterOSH(cluster)
appDictionary = getapplicationInfo(shell, cldisp_command, Framework)
resourceDictionary = getresourceinfo(shell, cllsif_command)
OSHVResult.addAll(createserviceapplicationOSH (shell, appDictionary, resourceDictionary, HostOSH, ClusterOSH, Framework))
client.close()
except JavaException, ex:
strException = ex.getMessage()
logger.debugException('')
errormessages.resolveAndReport(strException, protocolName, Framework)
示例7: DiscoveryMain
def DiscoveryMain(Framework):
OSHVResult = ObjectStateHolderVector()
# # Write implementation to return new result CIs here...
ipList = Framework.getTriggerCIDataAsList('PHYSICAL_IP_ADDRESS')
portList = Framework.getTriggerCIDataAsList('PHYSICAL_PORT')
service_context = Framework.getDestinationAttribute('SERVICE_CONTEXT')
service_type = Framework.getDestinationAttribute('SERVICE_TYPE')
application_resource_id = Framework.getDestinationAttribute('APPLICATION_RESOURCE_ID')
application_resource_class = Framework.getDestinationAttribute('APPLICATION_RESOURCE_CLASS')
junction_id = Framework.getDestinationAttribute('JUNCTION_ID')
junction_root_class = Framework.getDestinationAttribute('JUNCTION_CLASS')
junction_name = Framework.getDestinationAttribute('JUNCTION_NAME')
SCPId = Framework.getDestinationAttribute('id')
junctionOsh = modeling.createOshByCmdbIdString(junction_root_class, junction_id)
url = urlparse(service_context)
if url:
# get context root path from url
path = url.path
if path.startswith(junction_name + '/'):
logger.info('Create one consumer-provider link between application and junction')
OSHVResult.addAll(scp.createCPLink(application_resource_id, application_resource_class, junction_id,
junction_root_class, SCPId, service_context))
for index in range(len(ipList)):
scpOsh = scp.createScpOsh(junctionOsh, service_type, ip=ipList[index], port=portList[index], context=service_context)
logger.info('Create scp with ip %s and port %s' % (ipList[index], portList[index]))
ipOsh = modeling.createIpOSH(ipList[index])
OSHVResult.add(scpOsh)
OSHVResult.add(ipOsh)
return OSHVResult
示例8: disHPUX
def disHPUX(host_obj, client, Framework = None, langBund = None, pid2Process = None):
hostId = Framework.getDestinationAttribute('hostId')
discoverProcesses = Boolean.parseBoolean(Framework.getParameter('discoverProcesses'))
myVec = ObjectStateHolderVector()
# Better format, but not supported on all HPUX systems
#r = client.executeCmd('ps -e -o pid,time,sz,comm,args')
r = client.execCmd('ps -ef')#[email protected]@CMD_PERMISION tty protocol execution
if r == None:
return myVec
lines = ''
if(re.search('\r\n',r)):
lines = r.split('\r\n')
elif (re.search('\n',r)):
lines = r.split('\n')
else:
return myVec
processList = []
pdu = None
try:
pdu = processdbutils.ProcessDbUtils(Framework)
hostOSH = None
for line in lines:
## Reg for processes with args
res = re.search('(\w+)\s+(\d+).*\s\d+\:\d\d\s([0-9a-zA-Z_.\[\]\-+:/]+)\s(.*)',line)
if(res):
cleanArgs = res.group(4)
else:
## Reg for processes with no args
res = re.search('(\w+)\s+(\d+).*\s\d+\:\d\d\s([0-9a-zA-Z_.\-+:/]+)',line)
if(res):
cleanArgs = ''
if(res):
owner = res.group(1)
commAndPath = res.group(3)
pid = res.group(2)
cleanCommand = ''
if commAndPath.find('/') == -1:
cleanCommand = commAndPath
else:
res2 = re.search('(.*/)([^/]+)',commAndPath)
if (res2):
cleanCommand = res2.group(2)
else:
continue
if hostOSH == None:
hostOSH = modeling.createOshByCmdbIdString('host', hostId)
commandLine = cleanCommand + ' ' + cleanArgs
addProcess(pdu, hostId, cleanCommand, pid, commandLine, commAndPath, cleanArgs, processList, discoverProcesses, myVec, hostOSH, None, owner)
pdu.flushHostProcesses(hostId)
if pid2Process is not None:
pid2Process.putAll(pdu.getProcessCmdMap())
finally:
if pdu != None:
pdu.close()
return myVec
示例9: DiscoveryMain
def DiscoveryMain(Framework):
OSHVResult = ObjectStateHolderVector()
logger.info ("Starting IMS Discovery")
DiscoverIMSDB = Boolean.parseBoolean(Framework.getParameter('DiscoverIMSDB'))
# create LPAR node from the ID passed in
hostId = Framework.getDestinationAttribute(PARAM_HOST_ID)
lparOsh = None
if eview_lib.isNotNull(hostId):
lparOsh = modeling.createOshByCmdbIdString('host_node', hostId)
ls = eview_lib.EvShell(Framework)
IMSSubSysDict = getIMSSubSys(ls, lparOsh)
OSHVResult.addAll(getIMSActRegions(ls,lparOsh, IMSSubSysDict ))
if DiscoverIMSDB and len(IMSSubSysDict) > 0:
databaseAreaDictionary = {}
databaseDictionary = {}
OSHVResult.addAll(getIMSDB(ls, IMSSubSysDict, databaseAreaDictionary , databaseDictionary))
OSHVResult.addAll(getAREAs(ls, IMSSubSysDict, databaseAreaDictionary , databaseDictionary))
OSHVResult.addAll(processPrograms(ls,IMSSubSysDict, Framework))
ls.closeClient()
logger.info ("Finished IMS Discovery")
return OSHVResult
示例10: DiscoveryMain
def DiscoveryMain(Framework):
OSHVResult = ObjectStateHolderVector()
shell = None
protocol = Framework.getDestinationAttribute('Protocol')
try:
try:
try:
hostName = Framework.getDestinationAttribute('hostname')
msMqManagerUcmdbId = Framework.getDestinationAttribute('msmq_id')
msMqManagerOsh = modeling.createOshByCmdbIdString('msmqmanager', msMqManagerUcmdbId)
client = Framework.createClient()
shell = shellutils.ShellUtils(client)
msMqDiscoverer = MsMqDiscoverer(shell, msMqManagerOsh, hostName)
if msMqDiscoverer:
msMqDiscoverer.discover()
msMqDiscoverer.addResultsToVector(OSHVResult)
finally:
try:
shell and shell.closeClient()
except:
logger.debugException('')
logger.error('Unable to close shell')
if OSHVResult.size() == 0:
raise Exception, "Failed getting information about Microsoft Message Queue"
except JavaException, ex:
msg =ex.getMessage()
errormessages.resolveAndReport(msg, protocol, Framework)
except:
msg = logger.prepareJythonStackTrace('')
errormessages.resolveAndReport(msg, protocol, Framework)
return OSHVResult
示例11: buildNetDeviceOSHV
def buildNetDeviceOSHV(localFramework, netDeviceCmdbIdList, netDeviceNameList):
try:
returnOSHV = ObjectStateHolderVector()
## Check validity of provided lists
if not netDeviceCmdbIdList:
localFramework.reportError('Please check adapter parameter <netdevice_cmdbid>')
return None
if not netDeviceNameList:
localFramework.reportError('Please check adapter parameter <netdevice_name>')
return None
if len(netDeviceCmdbIdList) != len(netDeviceNameList):
localFramework.reportError('The lists <netdevice_cmdbid> and <netdevice_name> have different sizes: <%s> and <%s>! Please check adapter input configuration' \
% (len(netDeviceCmdbIdList), len(netDeviceNameList)))
return None
## Build OSH and dict
for netDeviceIndex in range(len(netDeviceCmdbIdList)):
netDeviceCmdbId = netDeviceCmdbIdList[netDeviceIndex]
netDeviceName = netDeviceNameList[netDeviceIndex]
## Check if attributes are good
if not netDeviceCmdbId or not netDeviceName:
logger.debug('Skipping invalid NetDevice name or CMDB ID in adapter input parameter...')
continue
## Build OSH and add to OSHV
netDeviceOSH = modeling.createOshByCmdbIdString('netdevice', netDeviceCmdbId)
#netDeviceOSH.setAttribute('name', netDeviceName)
netDeviceOSH.setAttribute('data_externalid', netDeviceName)
ciscoworks_utils.debugPrint(4, '[' + SCRIPT_NAME + ':buildNetDeviceOSHV] Built OSH for NetDevice <%s> with CMDB ID <%s>' % (netDeviceName, netDeviceCmdbId))
returnOSHV.add(netDeviceOSH)
return returnOSHV
except:
excInfo = logger.prepareJythonStackTrace('')
logger.warn('[' + SCRIPT_NAME + ':buildNetDeviceOSHV] Exception: <%s>' % excInfo)
pass
示例12: DiscoveryMain
def DiscoveryMain(Framework):
OSHVResult = ObjectStateHolderVector()
# # Write implementation to return new result CIs here...
ipList = Framework.getTriggerCIDataAsList('PHYSICAL_IP_ADDRESS')
portList = Framework.getTriggerCIDataAsList('PHYSICAL_PORT')
service_context = Framework.getDestinationAttribute('SERVICE_CONTEXT')
service_type = Framework.getDestinationAttribute('SERVICE_TYPE')
cluster_id = Framework.getDestinationAttribute('CLUSTER_ID')
application_resource_id = Framework.getDestinationAttribute('APPLICATION_RESOURCE_ID')
cluster_root_class = Framework.getDestinationAttribute('CLUSTER_CLASS')
application_resource_class = Framework.getDestinationAttribute('APPLICATION_RESOURCE_CLASS')
SCPId = Framework.getDestinationAttribute('id')
clusterOsh = modeling.createOshByCmdbIdString(cluster_root_class, cluster_id)
OSHVResult.addAll(scp.createCPLink(application_resource_id, application_resource_class, cluster_id,
cluster_root_class, SCPId, service_context))
for index in range(len(ipList)):
scpOsh = scp.createScpOsh(clusterOsh, service_type, ip=ipList[index], port=portList[index], context=service_context)
ipOsh = modeling.createIpOSH(ipList[index])
OSHVResult.add(scpOsh)
OSHVResult.add(ipOsh)
return OSHVResult
示例13: disVMKernel
def disVMKernel(hostId, shell, Framework = None, langBund = None):
''' Discover physical memory on VMKernel
str, Shell, Framework, Properties -> oshVector
@raise ValueError: memory size is not a digit
@command: esxcfg-info -F xml | sed -n \'/<memory-info>/,/<\/memory-info>/p\'
'''
resVec = ObjectStateHolderVector()
hostOsh = modeling.createOshByCmdbIdString('host', hostId)
xml = shell.execCmd('esxcfg-info -F xml | sed -n \'/<memory-info>/,/<\/memory-info>/p\' | sed -n \'1,/<\/memory-info>/p\'')
#Cleanup retrieved xml. Sometimes there is some debug info added
xml = xml[xml.find('<'): xml.rfind('>') + 1]
builder = SAXBuilder(0)
document = builder.build(StringReader(xml))
rootElement = document.getRootElement()
memory_values = rootElement.getChild('aux-source-memory-stats').getChildren('value')
for value in memory_values:
if value.getAttributeValue('name') == 'physical-memory-est.':
memorySizeInKilobytes = int(value.getText())
memory.report(resVec, hostOsh, memorySizeInKilobytes)
#TODO: Implement swap discovery for vmkernel
resVec.add(hostOsh)
return resVec
示例14: DiscoveryMain
def DiscoveryMain(Framework):
version = Framework.getDestinationAttribute('siebelVersion')
siebelRootDir = Framework.getDestinationAttribute('siebelInstallDir')
OSHVResult = ObjectStateHolderVector()
appServerId = Framework.getDestinationAttribute('id')
appServerOSH = modeling.createOshByCmdbIdString('siebel_app_server', appServerId)
modeling.setAppServerType(appServerOSH)
client = None
try:
client = Framework.createClient()
discoverConfigFile(siebelRootDir,appServerOSH,client,version,OSHVResult)
except:
errmsg = 'Connection failed: %s' % str(sys.exc_info()[1]).strip()
Framework.reportError(errmsg)
logger.debugException(errmsg)
if(client != None):
try:
client.close()
except:
pass
return OSHVResult
示例15: disLinux
def disLinux(hostId, shell, Framework = None, langBund = None):
''' Discover physical memory and swap memory on GNU/Linux
str, Shell, Framework, Properties -> oshVector
@command: /usr/bin/free -m
'''
myVec = ObjectStateHolderVector()
hostOsh = modeling.createOshByCmdbIdString('host', hostId)
output = None
try:
output = shell.execCmd('/usr/bin/free -m')#[email protected]@CMD_PERMISION tty protocol execution
if not output or shell.getLastCmdReturnCode() != 0:
raise ValueError
except:
logger.warn("Failed getting memory size from 'free'")
else:
lines = output.split('\n')
for line in lines:
if line:
if re.search('cache', line):
continue
matcher = re.match("Mem:\s+(\d+)\s+", line)
if matcher:
memorySizeInMegabytes = int(matcher.group(1))
memorySizeInKilobytes = memorySizeInMegabytes * 1024
memory.report(myVec, hostOsh, memorySizeInKilobytes)
else:
matcher = re.match("Swap:\s+(\d+)\s+", line)
if matcher:
swapMemorySizeInMegabytes = int(matcher.group(1))
modeling.setHostSwapMemorySizeAttribute(hostOsh, swapMemorySizeInMegabytes)
myVec.add(hostOsh)
return myVec