def createHostObject(self, parent, hostDict): """helper methode to create host instance """ dateNow = datetime.utcnow() newHost = createObject(u'org.ict_ok.components.host.host.Host') notify(ObjectCreatedEvent(newHost)) parent.__setitem__(newHost.getObjectId(), newHost) dc = IZopeDublinCore(newHost, None) dc.creators = [u'ikportscan'] newHost.ikComment += u"scanner: %s" % (dateNow) if hostDict.has_key('hostname'): newHost.__setattr__("ikName", hostDict['hostname']) newHost.__setattr__("hostname", hostDict['hostname']) dc.title = hostDict['hostname'] else: newHost.__setattr__("ikName", hostDict['ipAddress']) dc.title = hostDict['ipAddress'] for i_os in hostDict['oss']: os_string = u"%s %s (%s) (%s)" % (i_os['osfamily'], i_os['osgen'], i_os['type'], i_os['vendor']) newHost.osList.append(os_string) newHost.__setattr__("genNagios", True) dc.created = dateNow if hostDict.has_key("interfaces") and len(hostDict['interfaces']) > 0: for interfaceDict in hostDict['interfaces']: self.createInterfaceObject(newHost, interfaceDict) notify(ObjectCreatedEvent(newHost))
def CreatedAnnotator(event): dc = IZopeDublinCore(event.object, None) if dc is not None: # Principals that can create objects do not necessary have permissions # to arbitrarily modify DC data, see issue 373 dc = removeSecurityProxy(dc) now = datetime.now(pytz.utc) dc.created = now dc.modified = now
def CreatedAnnotator(event): dc = IZopeDublinCore(event.object, None) if dc is not None: # Principals that can create objects do not necessary have permissions # to arbitrarily modify DC data, see issue 373 dc = removeSecurityProxy(dc) now = datetime.now(pytz.utc) dc.created = now dc.modified = now
def CreatedAnnotator(object, event=None): if event is None: # annotator was only called the event as only argument object = object.object dc = IZopeDublinCore(object, None) if dc is not None: # Principals that can create objects do not necessary have permissions # to arbitrarily modify DC data, see issue 373 dc = removeSecurityProxy(dc) now = _now() dc.created = now dc.modified = now
def __post_init__(self, **data): """ triggerd after constructor has been finished """ newEntry = Entry(u"Object created", self, level=u"info") newEntry.setObjVersion(self.ikRevision) self.history.append(newEntry) self.connectToEventXbar() newEntry = Entry(u"Object connected to event crossbar", self, level=u"info") newEntry.setObjVersion(self.ikRevision) self.history.append(newEntry) dc = IZopeDublinCore(self, None) if dc is not None: now = datetime.now(pytz.utc) dc.created = now dc.modified = now
def createLocalSystem(root_folder): dateNow = datetime.utcnow() newHost = createObject(u'org.ict_ok.components.host.host.Host') notify(ObjectCreatedEvent(newHost)) root_folder.__setitem__(newHost.getObjectId(), newHost) dcore = IZopeDublinCore(newHost, None) dcore.creators = [u'first bootstrap'] newHost.ikComment += u"bootstrap on %s" % (dateNow) newHost.__setattr__("ikName", u'Local System') newHost.__setattr__("hostname", u'Local System') dcore.title = u'Local System' newHost.__setattr__("ikDesc", u'this is the ict-ok.org management-system') newHost.__setattr__("manufacturer", u'see ict-ok.org') newHost.__setattr__("vendor", u'see ict-ok.org') newHost.__setattr__("genNagios", True) dcore.created = dateNow
def createInterfaceObject(self, parent, interfaceDict): """helper methode to create interface instance """ dateNow = datetime.utcnow() newInterface = createObject(\ u'org.ict_ok.components.interface.interface.Interface') newInterfaceId = u"If%s" % (interfaceDict['nbr']) parent.__setitem__(newInterface.getObjectId(), newInterface) newInterfaceDc = IZopeDublinCore(newInterface, None) newInterfaceDc.title = u"%s" % interfaceDict['name'] newInterfaceDc.__setattr__("ikName", newInterfaceDc.title) newInterfaceDc.created = datetime.utcnow() newInterfaceDc.creators = [u'ikportscan'] newInterface.ikComment += u"scanner: %s" % (dateNow) if interfaceDict.has_key('macAddress'): newInterface.__setattr__("mac", unicode(interfaceDict['macAddress'])) if interfaceDict.has_key('ipAddressType') and \ interfaceDict['ipAddressType'] == u'ipv4': if interfaceDict.has_key('ipAddress'): #newInterface.ipv4List.append(interfaceDict['ipAddress']) newInterface.ipv4List = unicode(interfaceDict['ipAddress']) ### build snmp objects #if interfaceDict.has_key("snmplist") and len(interfaceDict['snmplist'])>0: #for snmpDict in interfaceDict['snmplist']: ### oid-Test #newSnmp = zapi.createObject(None, 'ikom.snmp.Snmp') #notify(ObjectCreatedEvent(newSnmp)) #newSnmp.__setattr__("description", snmpDict['name']) #newSnmp.__setattr__("checktype", "oid") #newSnmp.__setattr__("inputtype", "abs") #newSnmp.__setattr__("oid1", snmpDict['oid1']) #newSnmp.__setattr__("oid2", snmpDict['oid2']) #for i in ["cmd", "inptype", "inpUnit", "displayUnitNumerator", "displayUnitDenominator", #"checkMax", "checkMaxLevel", "checkMaxLevelUnitNumerator", "checkMaxLevelUnitDenominator"]: #newSnmp.__setattr__(i, snmpDict[i]) #newSnmpDc = IZopeDublinCore(newSnmp, None) #newSnmpId=u"%s" % (snmpDict['name']) #newSnmpDc.title = u"%s" % (snmpDict['name']) #newSnmpDc.created = datetime.utcnow() #newSnmpDc.creators = [u'ikportscan'] #newInterface.__setitem__(newSnmpId, newSnmp) ### build services for serviceDict in interfaceDict['services']: self.createServiceObject(newInterface, serviceDict) notify(ObjectCreatedEvent(newInterface))
def createServiceObject(self, parent, serviceDict): """helper methode to create service instance """ dateNow = datetime.utcnow() #if port['port'] == u"389": ## ldap #newService = zapi.createObject(None, 'ikom.service.ServiceLdap') #newService.__setattr__("basedn", u'dc=domain,dc=tld') if False: pass elif serviceDict['port'] == u"22": ## ssh newService = zapi.createObject(\ u'org.ict_ok.components.service.special.ssh.service.ServiceSsh') elif serviceDict['port'] == u"80": ## ssh newService = zapi.createObject(\ u'org.ict_ok.components.service.special.http.service.ServiceHttp') else: newService = zapi.createObject(\ u'org.ict_ok.components.service.service.Service') newServiceId = u"%s" % (serviceDict['port']) parent.__setitem__(newService.getObjectId(), newService) #newService.__setattr__("genNagios", True) newServiceDc = IZopeDublinCore(newService, None) newServiceDc.title = u"%s" % serviceDict['service'] newServiceDc.created = datetime.utcnow() newServiceDc.creators = [u'ikportscan'] try: intPort = int(serviceDict['port']) newService.__setattr__("port", intPort) except ValueError: raise Exception, "port number isn't valid '%s'" % serviceDict[ 'port'] except TypeError: raise Exception, "port number isn't valid '%s'" % serviceDict[ 'port'] newService.__setattr__("product", unicode(serviceDict['product'])) newService.__setattr__("ipprotocol", unicode(serviceDict['protocol'.lower()])) if serviceDict.has_key('service'): ## and (len(port['service']) > 0): newServiceDc.title = u"%s" % serviceDict['service'] else: newServiceDc.title = u"%s" % serviceDict['port'] notify(ObjectCreatedEvent(newService))
def createObjects(self, hostList, containerObject): """ will use factories to create the objects from the dataDict """ for host in hostList: dateNow = datetime.now(berlinTZ) newHost = createObject(u'org.ict_ok.components.host.host.Host') notify(ObjectCreatedEvent(newHost)) containerObject.__setitem__(newHost.getObjectId(), newHost) dc = IZopeDublinCore(newHost, None) dc.creators = [u'ikportscan'] newHost.ikComment += u"scanner: %s" % (dateNow) if host.has_key('hostname'): newHost.__setattr__("ikName", host['hostname']) newHost.__setattr__("hostname", host['hostname']) dc.title = host['hostname'] else: newHost.__setattr__("ikName", host['ipAddress']) dc.title = host['ipAddress'] for i_os in host['oss']: os_string = u"%s %s (%s) (%s)" % (i_os['osfamily'], i_os['osgen'], i_os['type'], i_os['vendor']) newHost.osList.append(os_string) newHost.__setattr__("genNagios", True) dc.created = dateNow if host.has_key("interfaces") and len(host['interfaces']) > 0: for interfaceDict in host['interfaces']: newInterface = createObject(\ u'org.ict_ok.components.interface.interface.Interface') notify(ObjectCreatedEvent(newInterface)) newInterfaceId = u"If%s" % (interfaceDict['nbr']) newHost.__setitem__(newInterfaceId, newInterface) #newInterface.__setattr__("description", interfaceDict['name']) #newInterface.__setattr__("ifindex", interfaceDict['nbr']) newInterfaceDc = IZopeDublinCore(newInterface, None) newInterfaceDc.title = u"%s" % interfaceDict['name'] newInterfaceDc.created = datetime.utcnow() newInterfaceDc.creators = [u'ikportscan'] ### SNMP-Liste aufbauen #if interfaceDict.has_key("snmplist") and len(interfaceDict['snmplist'])>0: #for snmpDict in interfaceDict['snmplist']: ### oid-Test #newSnmp = zapi.createObject(None, 'ikom.snmp.Snmp') #notify(ObjectCreatedEvent(newSnmp)) #newSnmp.__setattr__("description", snmpDict['name']) #newSnmp.__setattr__("checktype", "oid") #newSnmp.__setattr__("inputtype", "abs") #newSnmp.__setattr__("oid1", snmpDict['oid1']) #newSnmp.__setattr__("oid2", snmpDict['oid2']) #for i in ["cmd", "inptype", "inpUnit", "displayUnitNumerator", "displayUnitDenominator", #"checkMax", "checkMaxLevel", "checkMaxLevelUnitNumerator", "checkMaxLevelUnitDenominator"]: #newSnmp.__setattr__(i, snmpDict[i]) #newSnmpDc = IZopeDublinCore(newSnmp, None) #newSnmpId=u"%s" % (snmpDict['name']) #newSnmpDc.title = u"%s" % (snmpDict['name']) #newSnmpDc.created = datetime.utcnow() #newSnmpDc.creators = [u'ikportscan'] #newInterface.__setitem__(newSnmpId, newSnmp) #newHost.__setitem__(newInterfaceId, newInterface) #if host.has_key("building"): #newHost.__setattr__("building", host['building']) #if host.has_key('oss') and len(host['oss'])>0: #hostOs = host['oss'][0] #firstOs = "%s - %s - %s - %s - %s" % (hostOs['vendor'],hostOs['osfamily'],hostOs['osgen'],hostOs['accuracy'],hostOs['type']) #newHost.__setattr__("os", firstOs) #else: #newHost.__setattr__("os", u"unknown") ### add services to interface if1 ####### Interface portsInterface = zapi.createObject(\ u'org.ict_ok.components.interface.interface.Interface') notify(ObjectCreatedEvent(portsInterface)) newHost.__setitem__(portsInterface.getObjectId(), portsInterface) newInterfaceDc = IZopeDublinCore(portsInterface, None) newInterfaceDc.title = u"If10000" portsInterface.__setattr__("ikName", u"If10000") newInterfaceDc.created = dateNow newInterfaceDc.creators = [u'ikportscan'] portsInterface.ikComment += u"scanner: %s" % (dateNow) #portsInterface.ipv4List.append(host['ipAddress']) portsInterface.ipv4List = host['ipAddress'] portsInterface.netType = 'ethernet' if host.has_key('macAddress'): portsInterface.mac = host['macAddress'] for port in host['ports']: #if port['protocol'].lower() == "tcp": #print "tcp" #elif port['protocol'].lower() == "udp": #print "udp" #if port['port'] == u"389": ## ldap #newService = zapi.createObject(None, 'ikom.service.ServiceLdap') #notify(ObjectCreatedEvent(newService)) #newService.__setattr__("basedn", u'dc=domain,dc=tld') #elif port['port'] == u"1111180": ## http #pass #else: #newService = zapi.createObject(None, 'ikom.service.Service') #notify(ObjectCreatedEvent(newService)) newService = zapi.createObject(\ u'org.ict_ok.components.service.service.Service') notify(ObjectCreatedEvent(newService)) newServiceId = u"%s" % (port['port']) portsInterface.__setitem__(newServiceId, newService) #newService.__setattr__("genNagios", True) newServiceDc = IZopeDublinCore(newService, None) #newService.__setattr__("port", port['port']) #newService.__setattr__("protocol", port['protocol']) #newService.__setattr__("description", port['service']) newServiceDc.creators = [u'ikportscan'] newServiceDc.created = datetime.utcnow() if port.has_key('service'): ## and (len(port['service']) > 0): newServiceDc.title = u"%s" % port['service'] else: newServiceDc.title = u"%s" % port['port'] #newHost.__setitem__(newServiceId, newService) #containerObject.__setitem__(new_id, newHost) return None
def create(self, data): print "SnmpScanWizardForm.create(%s)" % data interfaceCnt = self.getInterfaceCnt(data) if interfaceCnt and interfaceCnt > 0: #interfacesDict = {} #for i in range(0, interfaceCnt): #interfacesDict[i] = {} #oidTuple = (1, 3, 6, 1, 2, 1, 2, 2, 1, 1) # InterfaceIndex #snmpList = self.getInterfaceVect(data, oidTuple) #if snmpList: #for snmpItem in snmpList: #interfacesDict[snmpList.index(snmpItem)]['index'] = \ #int(snmpItem[0][1]) #oidTuple = (1, 3, 6, 1, 2, 1, 2, 2, 1, 2) # InterfaceDesc #snmpList = self.getInterfaceVect(data, oidTuple) #if snmpList: #for snmpItem in snmpList: #interfacesDict[snmpList.index(snmpItem)]['desc'] = \ #snmpItem[0][1].prettyPrint().strip("'") #oidTuple = (1, 3, 6, 1, 2, 1, 2, 2, 1, 4) # InterfaceMtu #snmpList = self.getInterfaceVect(data, oidTuple) #if snmpList: #for snmpItem in snmpList: #interfacesDict[snmpList.index(snmpItem)]['mtu'] = \ #int(snmpItem[0][1]) #oidTuple = (1, 3, 6, 1, 2, 1, 2, 2, 1, 5) # InterfaceSpeed #snmpList = self.getInterfaceVect(data, oidTuple) #if snmpList: #for snmpItem in snmpList: #interfacesDict[snmpList.index(snmpItem)]['speed'] = \ #int(snmpItem[0][1]) #oidTuple = (1, 3, 6, 1, 2, 1, 2, 2, 1, 6) # InterfacehysAddress #snmpList = self.getInterfaceVect(data, oidTuple) #if snmpList: #for snmpItem in snmpList: #interfacesDict[snmpList.index(snmpItem)]['mac'] = \ #"%02x:%02x:%02x:%02x:%02x:%02x" % \ #tuple([ord(i) for i in snmpItem[0][1]]) #oidTuple = (1, 3, 6, 1, 2, 1, 2, 2, 1, 7) # InterfaceAdminStatus #snmpList = self.getInterfaceVect(data, oidTuple) #if snmpList: #for snmpItem in snmpList: #interfacesDict[snmpList.index(snmpItem)]['adminstat'] = \ #snmpItem[0][1] == 1 #oidTuple = (1, 3, 6, 1, 2, 1, 2, 2, 1, 8) # InterfaceOperStatus #snmpList = self.getInterfaceVect(data, oidTuple) #if snmpList: #for snmpItem in snmpList: #interfacesDict[snmpList.index(snmpItem)]['operstat'] = \ #snmpItem[0][1] == 1 #oidTuple = (1, 3, 6, 1, 2, 1, 31, 1, 1, 1, 1) # InterfaceName #snmpList = self.getInterfaceVect(data, oidTuple) #if snmpList: #for snmpItem in snmpList: #interfacesDict[snmpList.index(snmpItem)]['name'] = \ #snmpItem[0][1].prettyPrint().strip("'") ## ------------------------------------------- #if data['indexType'] == u'index': #atrList = [i['index'] for i in interfacesDict.values()] #atrDict = {}.fromkeys(atrList) #if len(atrDict.keys()) != interfaceCnt: #self.status = _(u"Error: interface index type 'Interface index' isn't unique") #return None #elif data['indexType'] == u'mac': #atrList = [i['mac'] for i in interfacesDict.values()] #atrDict = {}.fromkeys(atrList) #if len(atrDict.keys()) != interfaceCnt: #self.status = _(u"Error: interface index type 'Ethernet address' isn't unique") #return None #elif data['indexType'] == u'desc': #atrList = [i['desc'] for i in interfacesDict.values()] #atrDict = {}.fromkeys(atrList) #if len(atrDict.keys()) != interfaceCnt: #self.status = _(u"Error: interface index type 'Description' isn't unique") #return None #elif data['indexType'] == u'name': #atrList = [i['name'] for i in interfacesDict.values()] #atrDict = {}.fromkeys(atrList) #if len(atrDict.keys()) != interfaceCnt: #self.status = _(u"Error: interface index type 'Name' isn't unique") #return None ## ------------------------------------------- retList = [] dateNow = datetime.utcnow() newInterface = zapi.createObject(\ u'org.ict_ok.components.interface.interface.Interface') newInterfaceDc = IZopeDublinCore(newInterface, None) newInterface.ikName = u"ddd1" newInterfaceDc.title = u"ddd2" newInterfaceDc.created = datetime.utcnow() newInterface.__post_init__() retList.append(newInterface) #for interfaceKey in interfacesDict.keys()[:3]: #tmpInterface = interfacesDict[interfaceKey] #print "oooo:", tmpInterface #dateNow = datetime.utcnow() #newInterface = zapi.createObject(\ #u'org.ict_ok.components.interface.interface.Interface') ##notify(ObjectCreatedEvent(newInterface)) #newInterfaceDc = IZopeDublinCore(newInterface, None) #newInterface.ikName = u"%s" % tmpInterface['desc'] #newInterfaceDc.title = u"%s" % tmpInterface['desc'] #newInterfaceDc.created = datetime.utcnow() #newInterface.ikComment = u"%s" % tmpInterface['name'] #newInterface.mac = u"%s" % tmpInterface['mac'] #newInterface.ipv4List = None ## ------------------------------- ##from org.ict_ok.components.snmpvalue.snmpvalue import SnmpValue ##from org.ict_ok.components.superclass.interfaces import IBrwsOverview ##from zope.app.keyreference.interfaces import IKeyReference ##from zope.interface import directlyProvides ##newSnmpvalue = zapi.createObject(\ ##u'org.ict_ok.components.snmpvalue.snmpvalue.SnmpValue') ###directlyProvides(newSnmpvalue, IKeyReference) ###notify(ObjectCreatedEvent(newSnmpvalue)) ##newSnmpvalueDc = IZopeDublinCore(newSnmpvalue, None) ##newSnmpvalueDc.title = u"%s" % "ddd" ##newSnmpvalueDc.created = datetime.utcnow() ##newSnmpvalue.__post_init__() ###data = {'ikName': u"ddd314"} ###obj = SnmpValue(**data) ###IBrwsOverview(obj).setTitle(data['ikName']) ###obj.__post_init__() ### ------------------------------- ##newInterface.__setitem__(u"ddd", newSnmpvalue) ##newInterface.__setitem__(u"ddd", obj) #newInterface.__post_init__() #retList.append(newInterface) return retList # ------------------------------------------- #import pprint #print "-" * 80 #pprint.pprint(interfacesDict) #print "-" * 80 ##print "zzz: '%s'" % ddd self.status = _(u"Error: no unique Id") return None #[1,2,3]
def convertobj(self): """ converts this esx object to an internal object """ hostname = u"%s" % self.eval_on_obj('obj.name()') ip = u"%s" % self.eval_on_obj('obj.guest().ipAddress()') hardware = u"ESX virtual machine (%s MB)" % \ self.eval_on_obj('obj.runtime().maxMemoryUsage()') uuid = u"%s" % self.eval_on_obj('obj.config().uuid()') netList = [] index = 0 while True: mac = self.eval_on_obj('obj.guest().net()[%s].macAddress()' % index) name = self.eval_on_obj('obj.guest().net()[%s].network()' % index) if type(mac) == type('') and \ type(name) == type(''): ipList = [] ipIndex = 0 while True: ip = self.eval_on_obj('obj.guest().net()[%s].ipAddress()[%s]' %\ (index, ipIndex)) if type(ip) == type(''): ipList.append(u"%s" % ip) ipIndex += 1 else: break else: break net = {} net['index'] = index net['mac'] = u"%s" % mac net['name'] = u"%s" % name net['ips'] = ipList netList.append(net) index += 1 if index > 10: break # name: 'cbw-ikomtrol01' # ip: '192.168.157.98' # hardware: 'ESX virtual machine (384 MB)' # uuid: '500c4d26-525f-ab35-b2ee-9f77842f65b9' # netList: [{'index': 0, 'mac': '00:50:56:8c:63:77', 'name': 'CBW Servers', 'ips': ['192.168.157.98']}] if len(netList) > 0 and len(netList[0]['ips']) > 0: firstIp = netList[0]['ips'][0] allNetworks = getAllNetworks() for network in allNetworks: if network.containsIp(firstIp): print "create here:", network.ikName dateNow = datetime.utcnow() newHost = createObject(\ u'org.ict_ok.components.host.host.HostVMwareVm') newHost.__post_init__() notify(ObjectCreatedEvent(newHost)) network.__setitem__(newHost.getObjectId(), newHost) dcore = IZopeDublinCore(newHost, None) #dcore.creators = [u'ikportscan'] newHost.ikComment += u"esx scanner: %s" % (dateNow) newHost.__setattr__("ikName", hostname) newHost.__setattr__("hostname", hostname) dcore.title = hostname newHost.__setattr__("hardware", hardware) newHost.__setattr__("esxUuid", uuid) newHost.__setattr__("genNagios", False) dcore.created = dateNow for interf in netList: newInterface = createObject(\ u'org.ict_ok.components.interface.interface.Interface') notify(ObjectCreatedEvent(newInterface)) newInterfaceId = u"If%s" % (interf['index']) newHost.__setitem__(newInterfaceId, newInterface) newInterface.__setattr__("description", interf['name']) newInterface.__setattr__("ikName", newInterfaceId) newInterface.ikComment += u"esx scanner: %s" % ( dateNow) newInterfaceDc = IZopeDublinCore(newInterface, None) newInterfaceDc.title = newInterfaceId newInterfaceDc.created = datetime.utcnow() #newInterfaceDc.creators = [u'ikportscan'] newInterface.netType = "ethernet" newInterface.mac = interf['mac'] #newInterface.ipv4List.append(interfaceDict['ipAddress']) newInterface.ipv4List.extend(interf['ips']) return newHost return None
def createObjects(self, dataDict, containerObject): """ will use factories to create the objects from the dataDict """ for host in dataDict: dateNow = datetime.utcnow() newHost = createObject(u'org.ict_ok.components.host.host.Host') notify(ObjectCreatedEvent(newHost)) containerObject.__setitem__(newHost.getObjectId(), newHost) dcore = IZopeDublinCore(newHost, None) dcore.creators = [u'ikportscan'] newHost.ikComment += u"scanner: %s" % (dateNow) if host.has_key('hostname'): newHost.__setattr__("ikName", host['hostname']) newHost.__setattr__("hostname", host['hostname']) dcore.title = host['hostname'] else: if host.has_key('interfaces'): newHost.__setattr__("ikName", host['interfaces'][0]['ipAddress']) dcore.title = host['interfaces'][0]['ipAddress'] else: newHost.__setattr__("ikName", u"unknown") newHost.__setattr__("hostname", u"unknown") dcore.title = u"unknown" if host.has_key('description'): print "description: %s" % host['description'] newHost.__setattr__("ikDesc", host['description']) for my_atrb in [ 'building', 'room', 'manufacturer', 'vendor', 'workinggroup', 'hardware', 'user', 'inv_id' ]: if host.has_key(my_atrb): newHost.__setattr__(my_atrb, host[my_atrb]) #if host.has_key('building'): #newHost.__setattr__("building", host['building']) #if host.has_key('room'): #newHost.__setattr__("room", host['room']) if host.has_key('oss'): for i_os in host['oss']: os_string = u"%s %s (%s) (%s)" % ( i_os['osfamily'], i_os['osgen'], i_os['type'], i_os['vendor']) newHost.osList.append(os_string) newHost.__setattr__("genNagios", True) dcore.created = dateNow if host.has_key("interfaces") and len(host['interfaces']) > 0: for interfaceDict in host['interfaces']: #print "interfaceDict: ", interfaceDict dateNow = datetime.utcnow() newInterface = zapi.createObject(\ u'org.ict_ok.components.interface.interface.Interface') notify(ObjectCreatedEvent(newInterface)) newInterfaceId = u"If%s" % (interfaceDict['nbr']) newHost.__setitem__(newInterfaceId, newInterface) #newInterface.__setattr__("description", interfaceDict['name']) #newInterface.__setattr__("ifindex", interfaceDict['nbr']) newInterface.__setattr__("ikName", interfaceDict['name']) newInterface.ikComment += u"scanner: %s" % (dateNow) newInterfaceDc = IZopeDublinCore(newInterface, None) newInterfaceDc.title = u"%s" % interfaceDict['name'] newInterfaceDc.created = datetime.utcnow() newInterfaceDc.creators = [u'ikportscan'] newInterface.netType = "ethernet" if interfaceDict.has_key('macAddress'): newInterface.mac = interfaceDict['macAddress'] if interfaceDict.has_key('ipAddressType') and interfaceDict[ 'ipAddressType'] == 'ipv4' and interfaceDict.has_key( 'ipAddress'): #newInterface.ipv4List.append(interfaceDict['ipAddress']) newInterface.ipv4List.append(\ interfaceDict['ipAddress']) #### services for service in interfaceDict['services']: newService = zapi.createObject(\ u'org.ict_ok.components.service.service.Service') notify(ObjectCreatedEvent(newService)) newServiceId = u"%s" % (service['port']) newInterface.__setitem__(newServiceId, newService) newServiceDc = IZopeDublinCore(newService, None) newServiceDc.creators = [u'ikportscan'] newServiceDc.created = datetime.utcnow() tmpString = u"" if service.has_key('product'): tmpString += service['product'] + u"\n" if service.has_key('version'): tmpString += u"Ver. " + service['version'] + u"\n" if service.has_key('extrainfo'): tmpString += service['extrainfo'] + u"\n" if service.has_key('method'): tmpString += u"scan method: " + service[ 'method'] + u"\n" if len(tmpString) > 0: newService.ikComment += tmpString if service.has_key( 'service'): ## and (len(port['service']) > 0): newServiceDc.title = u"%s" % service['service'] newService.__setattr__("ikName", service['service']) else: newServiceDc.title = u"%s" % service['port'] #newHost.__setitem__(newServiceId, newService) #containerObject.__setitem__(new_id, newHost) ### SNMP-Liste aufbauen #if interfaceDict.has_key("snmplist") and len(interfaceDict['snmplist'])>0: #for snmpDict in interfaceDict['snmplist']: ### oid-Test #newSnmp = zapi.createObject(None, 'ikom.iksnmp.IkSnmp') #notify(ObjectCreatedEvent(newSnmp)) #newSnmp.__setattr__("description", snmpDict['name']) #newSnmp.__setattr__("checktype", "oid") #newSnmp.__setattr__("inputtype", "abs") #newSnmp.__setattr__("oid1", snmpDict['oid1']) #newSnmp.__setattr__("oid2", snmpDict['oid2']) #for i in ["cmd", "inptype", "inpUnit", "displayUnitNumerator", "displayUnitDenominator", #"checkMax", "checkMaxLevel", "checkMaxLevelUnitNumerator", "checkMaxLevelUnitDenominator"]: #newSnmp.__setattr__(i, snmpDict[i]) #newSnmpDc = IZopeDublinCore(newSnmp, None) #newSnmpId=u"%s" % (snmpDict['name']) #newSnmpDc.title = u"%s" % (snmpDict['name']) #newSnmpDc.created = datetime.utcnow() #newSnmpDc.creators = [u'ikportscan'] #newInterface.__setitem__(newSnmpId, newSnmp) #newHost.__setitem__(newInterfaceId, newInterface) #if host.has_key("building"): #newHost.__setattr__("building", host['building']) #if host.has_key('oss') and len(host['oss'])>0: #hostOs = host['oss'][0] #firstOs = "%s - %s - %s - %s - %s" % (hostOs['vendor'],hostOs['osfamily'],hostOs['osgen'],hostOs['accuracy'],hostOs['type']) #newHost.__setattr__("os", firstOs) #else: #newHost.__setattr__("os", u"unknown") ### add services to interface if1 ####### Interface ####portsInterface = zapi.createObject(\ ####u'org.ict_ok.ikinterface.ikinterface.Interface') ####notify(ObjectCreatedEvent(portsInterface)) ####newHost.__setitem__(portsInterface.getObjectId(), ####portsInterface) ####newInterfaceDc = IZopeDublinCore(portsInterface, None) ####newInterfaceDc.title = u"If10000" ####portsInterface.__setattr__("ikName", u"If10000") ####newInterfaceDc.created = dateNow ####newInterfaceDc.creators = [u'ikportscan'] ####portsInterface.ikComment += u"scanner: %s" % (dateNow) ####portsInterface.ipv4List.append(host['ipAddress']) ####portsInterface.netType = 'ethernet' ####if host.has_key('macAddress'): ####portsInterface.mac = host['macAddress'] return None