Example #1
0
 def appendSlave(self, msgHeader, nodename=None):
     """
     append oid to slave list
     """
     if nodename:
         if nodename in zapi.getRoot(self):
             newSlaveNode = zapi.getRoot(self)[nodename]
         else:
             #self.oidSlave = msgHeader['from_oid']
             newSlaveNode = createObject(\
                 u"org.ict_ok.slave.slave.Slave")
             ISlave['objectID'].readonly = False
             newSlaveNode.objectID = msgHeader['from_oid']
             ISlave['objectID'].readonly = True
             newSlaveNode.ikName = unicode(nodename)
             notify(ObjectCreatedEvent(newSlaveNode))
             zapi.getRoot(self)[nodename] = newSlaveNode
     slaveSupervisor = zapi.queryUtility(IAdmUtilSupervisor,
                                         context=newSlaveNode)
     if slaveSupervisor:
         #slaveSupervisor.ipv4Master = msgHeader['to_ip']
         #slaveSupervisor.oidMaster = msgHeader['to_oid']
         slaveSupervisor.status2Master = u"connected"
         slaveSupervisor.ipv4Slave = msgHeader['from_ip']
         slaveSupervisor.oidSlave = msgHeader['from_oid']
         slaveSupervisor.lastSeenSlave = datetime.now(berlinTZ)
     self._p_changed = True
     mq_utility = zapi.queryUtility(IAdmUtilObjMQ)
     if mq_utility:
         my_data = {'cmd': 'connected'}
         my_data['header'] = mq_utility.switchFromTo(msgHeader)
         mq_utility.sendPerMq(my_data)
Example #2
0
 def sendPong(self, msgHeader, nodename=None):
     """
     revert message header and sends a pong as response to the ping
     """
     if nodename:
         if nodename in zapi.getRoot(self):
             newSlaveNode = zapi.getRoot(self)[nodename]
             slaveSupervisor = zapi.queryUtility(IAdmUtilSupervisor,
                                                 context=newSlaveNode)
             if slaveSupervisor:
                 slaveSupervisor.lastSeenMaster = datetime.now(berlinTZ)
     mq_utility = zapi.queryUtility(IAdmUtilObjMQ)
     if mq_utility:
         my_data = {'cmd': 'pong'}
         my_data['header'] = mq_utility.switchFromTo(msgHeader)
         mq_utility.sendPerMq(my_data)
Example #3
0
 def allConfigFilesOut(self, forceOutput=False, event=None, genOutput=True):
     """make configuration file
     return True if any value has changed
     """
     valueChanged = forceOutput
     # start config file header
     utcTZ = timezone('UTC')
     starttimeCfg = datetime.datetime.now(utcTZ)
     if genOutput:
         fpCfg = codecs.open(u'/opt/smokeping/etc/ict_ok/ict.cfg',
                             'w',
                             encoding='utf-8')
         fpCfg.write(u"# generated by ict-ok.org Ver. %s (%s)\n\n" %
                     (getIkVersion(), starttimeCfg))
         fpCfg.write(u"# ----------------------------------------\n")
         fpCfg.close()
     # start config file main parts
     its = zapi.getRoot(self).items()
     for (dummy_name, oobj) in its:
         if ISupernode.providedBy(oobj):
             try:
                 adapterGenSmokePing = IGenSmokePing(oobj)
                 if adapterGenSmokePing:
                     adapterGenSmokePing.genOutput = genOutput
                     if adapterGenSmokePing.smokepingConfigFileOut(\
                         forceOutput, event):
                         valueChanged = True
             except TypeError, errText:
                 logger.error(u"Problem in adaption of smokeping conf: %s" %\
                              (errText))
Example #4
0
    def __BBB_old_getComponent(self, path):
        service_manager = zapi.getSiteManager(self)

        # Get the root and unproxy it
        if path.startswith("/"):
            # Absolute path
            root = removeAllProxies(zapi.getRoot(service_manager))
            component = zapi.traverse(root, path)
        else:
            # Relative path.
            ancestor = self.__parent__.__parent__
            component = zapi.traverse(ancestor, path)

        if self.permission:
            if type(component) is Proxy:
                # There should be at most one security Proxy around an object.
                # So, if we're going to add a new security proxy, we need to
                # remove any existing one.
                component = removeSecurityProxy(component)

            interface = self.getInterface()

            checker = InterfaceChecker(interface, self.permission)

            component = Proxy(component, checker)

        return component
Example #5
0
 def fillDotFile(self, pdId, dotFile, mode=None):
     """generate the dot file
     """
     print >> dotFile, '// GraphViz DOT-File'
     print >> dotFile, 'digraph "%s" {' % (zapi.getRoot(self).__name__)
     if mode and mode.lower() == "fview":
         print >> dotFile, '\tgraph [bgcolor="#E5FFF9", dpi="100.0"];'
     else:
         print >> dotFile, '\tgraph [bgcolor="#E5FFF9", size="6.2,5.2",' +\
         ' splines="true", ratio = "auto", dpi="100.0"];'
     print >> dotFile, '\tedge [style = "setlinewidth(2)", color = gray];'
     print >> dotFile, '\trankdir = LR;'
     if AdmUtilWFMC.wf_pd_dict.has_key(pdId):
         procd = AdmUtilWFMC.wf_pd_dict[pdId]
         for i in procd.activities:
             adapterGenDot = IGenWFMCDot(procd.activities[i])
             if adapterGenDot:
                 adapterGenDot.traverse4DotGenerator(\
                     dotFile,
                     level=1,
                     comments=True)
         for i in procd.transitions:
             adapterGenDot = IGenWFMCDot(i)
             if adapterGenDot:
                 adapterGenDot.traverse4DotGenerator(\
                     dotFile,
                     level=1,
                     comments=True)
     print >> dotFile, '}'
     dotFile.flush()
Example #6
0
 def virtualHostTree(self):
     """Cookie tree with only folders and the root container as
     root node.
     """
     vh = self.request.getVirtualHostRoot()
     if vh:
         return self.folderTree(vh)
     else:
         root = zapi.getRoot(self.context)
         return self.folderTree(root)
Example #7
0
 def fillDotFile(self, objList, dotFile):
     """generate the dot file
     """
     print >> dotFile, '// GraphViz DOT-File'
     print >> dotFile, 'graph "%s" {' % (zapi.getRoot(self).__name__)
     print >> dotFile, '\tgraph [bgcolor="#E5FFF9"];'
     print >> dotFile, '\tedge [style = "setlinewidth(2)", color = gray];'
     print >> dotFile, '\trankdir = LR;'
     for (dummy_name, oobj) in objList:
         if ISupernode.providedBy(oobj):
             try:
                 adapterGenGraphvizDot = IGenGraphvizDot(oobj)
                 if adapterGenGraphvizDot:
                     adapterGenGraphvizDot.setParent(zapi.getRoot(self))
                     adapterGenGraphvizDot.traverse4DotGenerator(\
                         dotFile,
                         level=1,
                         comments=False)
             except TypeError, err:
                 logger.error("TypeError in fillDotFile() [%s]" % err)
Example #8
0
 def allConfigFilesOut(self):
     """make configuration file
     """
     self.touchLastConfigFile()
     its = zapi.getRoot(self).items()
     for (dummy_name, oobj) in its:
         if ISupernode.providedBy(oobj):
             try:
                 adapterGenNagios = IGenNagios(oobj)
                 if adapterGenNagios:
                     adapterGenNagios.nagiosConfigFileOut(True, None)
             except TypeError, errText:
                 logger.error(u"Problem in adaption of nagios config: %s" %\
                              (errText))
Example #9
0
    def getConfig(self):
        """make configuration file
        TODO filename or filehandle must be an argument
        """
        dtHostCfg = datetime.now(berlinTZ)
        #fpHostCfg = open(u'/opt/ikomtrol/etc/Host.cfg', 'w+')
        fpHostCfg = open(u'/opt/nagios/etc/ict_ok/Host.cfg', 'w+')
        fpHostCfg.write(u"# Host.cfg\n")
        fpHostCfg.write(u"# generated by ict-ok.org Ver. %s (%s)\n\n" %
                        (getIkVersion(), dtHostCfg))

        dtHostGroupCfg = datetime.now(berlinTZ)
        #fpHostGroupCfg = open(u'/opt/ikomtrol/etc/HostGroup.cfg', 'w+')
        fpHostGroupCfg = open(u'/opt/nagios/etc/ict_ok/HostGroup.cfg', 'w+')
        fpHostGroupCfg.write(u"# HostGroup.cfg\n")
        fpHostGroupCfg.write(u"# generated by ict-ok.org Ver. %s (%s)\n\n" %
                             (getIkVersion(), dtHostGroupCfg))
        fpHostGroupCfg.write(u"define hostgroup {\n")
        fpHostGroupCfg.write(u"    hostgroup_name IKOMtrol\n")
        fpHostGroupCfg.write(u"    alias IKOMtrol-Systeme\n")
        fpHostGroupCfg.write(u"    members ")

        dtServiceCfg = datetime.now(berlinTZ)
        #fpServiceCfg = open(u'/opt/ikomtrol/etc/Service.cfg', 'w+')
        fpServiceCfg = open(u'/opt/nagios/etc/ict_ok/Service.cfg', 'w+')
        fpServiceCfg.write(u"# Service.cfg\n")
        fpServiceCfg.write(u"# generated by ict-ok.org Ver. %s (%s)\n\n" %
                           (getIkVersion(), dtServiceCfg))

        fileDict = {
            'HostCfg': fpHostCfg,
            'HostGroupCfg': fpHostGroupCfg,
            'ServiceCfg': fpServiceCfg
        }
        #cfgFile = open('/tmp/cfgNagiosFile', 'w')
        #import pdb; pdb.set_trace()
        its = zapi.getRoot(self).items()
        for (dummy_name, oobj) in its:
            if ISupernode.providedBy(oobj):
                try:
                    adapterGenNagios = IGenNagios(oobj)
                    if adapterGenNagios:
                        adapterGenNagios.traverse4nagiosGenerator(
                            fileDict, level=1, comments=False)
                except TypeError, errText:
                    logger.error(u"Problem in adaption of nagios config: %s" %\
                                 (errText))
Example #10
0
 def getConfig(self):
     """make configuration file
     TODO filename or filehandle must be an argument
     """
     cfgFile = open('/tmp/cfgFile', 'w')
     its = zapi.getRoot(self).items()
     for (dummy_name, oobj) in its:
         if ISupernode.providedBy(oobj):
             try:
                 adapterGenHoneyd = IIKGenHoneyd(oobj)
                 if adapterGenHoneyd:
                     adapterGenHoneyd.traverse4honeydGenerator(
                         cfgFile, level=1, comments=True)
             except TypeError:
                 logger.error(u"Problem in adaption of honeyd config")
     cfgFile.flush()
     cfgFile.close()
     return "aaa"
Example #11
0
 def generateAllPdf(self, absFilename, authorStr, versionStr):
     """
     will generate a complete pdf report
     """
     files2delete = []
     document = RptDocument(absFilename)
     #document.setVolumeNo("1")
     document.setAuthorName(authorStr)
     document.setVersionStr(versionStr)
     its = zapi.getRoot(self).items()
     for (dummy_name, oobj) in its:
         if ISupernode.providedBy(oobj):
             try:
                 adapterRptPdf = IRptPdf(oobj)
                 if adapterRptPdf:
                     adapterRptPdf.document = document
                     adapterRptPdf.traverse4Rpt(1, False)
                     files2delete.extend(adapterRptPdf.files2delete)
                     del adapterRptPdf
             except TypeError, errText:
                 logger.error(u"Problem in adaption of pdf report: %s" %\
                              (errText))
Example #12
0
    def fillDotFile(self, dotFile, mode=None):
        """generate the dot file
        """
        my_catalog = zapi.getUtility(ICatalog)
        objIdSet = set()
        objSet = set()
        eventSet = set()
        for (oid, oobj) in self.items():
            objIdSet.add(oid)
        for objId in self.inpEQueues:
            objIdSet.add(objId)
        for objId in self.outEQueues:
            objIdSet.add(objId)
        for objId in objIdSet:
            for result in my_catalog.searchResults(oid_index=objId):
                if IAdmUtilEvent.providedBy(result):
                    eventSet.add(result)
                elif IEventLogic.providedBy(result):
                    objSet.add(result)
                elif IEventLogic.providedBy(result):
                    objSet.add(result)
                elif IComponent.providedBy(result):
                    if result.isConnectedToEvent():
                        objSet.add(result)
                else:
                    pass
        print >> dotFile, '// GraphViz DOT-File'
        print >> dotFile, 'digraph "%s" {' % (zapi.getRoot(self).__name__)
        if mode and mode.lower() == "fview":
            print >> dotFile, '\tgraph [bgcolor="#E5FFF9", dpi="100.0"];'
        else:
            print >> dotFile, '\tgraph [bgcolor="#E5FFF9", size="6.2,5.2",' +\
            ' splines="true", ratio = "auto", dpi="100.0"];'
        print >> dotFile, '\tnode [fontname = "Helvetica",fontsize = 10];'
        print >> dotFile, '\tedge [style = "setlinewidth(2)", color = black];'
        print >> dotFile, '\trankdir = LR;'
        print >> dotFile, '\t// objects ----------------------------------'
        for obj in objSet:
            objGraphvizDot = IGenGraphvizDot(obj)
            objGraphvizDot.traverse4DotGenerator(dotFile,
                                                 level=1,
                                                 comments=True,
                                                 signalsOutput=True,
                                                 recursive=False)
        #print "-" * 80
        #uidutil = zapi.getUtility(IIntIds)
        #print >> dotFile, '\t// locations ----------------------------------'
        #for (oid, oobj) in uidutil.items():
        #if ILocation.providedBy(oobj.object):
        #print "Location: ", oobj.object.ikName
        #print >> dotFile, \
        #'\tsubgraph "cluster_location" { color=blue; label="location"};'
        ##elif IRoom.providedBy(oobj.object):
        ##print "Room: ", oobj.object.ikName
        ##elif ILocation.providedBy(oobj.object):
        ##print "Location: ", oobj.object.ikName
        #print "-" * 80

        print >> dotFile, '\t// events ----------------------------------'
        for event in eventSet:
            eventGraphvizDot = IGenGraphvizDot(event)
            eventGraphvizDot.traverse4DotGenerator(dotFile,
                                                   level=1,
                                                   comments=True)
        for obj in objSet:
            allInpNamesDict = obj.getAllInpEventNames()
            allOutNamesDict = obj.getAllOutEventNames()
            for inpName in allInpNamesDict.keys():
                for iObj in allInpNamesDict[inpName]:
                    print >> dotFile, '\t "%s"-> "%s":"%s"' % (
                        iObj, obj.objectID, inpName)
            for outName in allOutNamesDict.keys():
                for iObj in allOutNamesDict[outName]:
                    print >> dotFile, '\t "%s":"%s"-> "%s"' % (obj.objectID,
                                                               outName, iObj)
        print >> dotFile, '}'
        dotFile.flush()
Example #13
0
 def apidocTree(self):
     root = zapi.getRoot(self.context)['apidoc']
     filter = PreferenceGroupFilter()
     return self.cookieTree(root, filter)
Example #14
0
 def rootTree(self):
     """Cookie tree with only folders and the root container as
     root node.
     """
     root = zapi.getRoot(self.context)
     return self.folderTree(root)
Example #15
0
 def getCmapxText(self):
     """get dot file and convert to client side image map
     """
     return self.context.getCmapxText(zapi.getRoot(self))
Example #16
0
 def getPngFile(self):
     """get dot file and convert to png
     """
     return self.context.getPngFile(zapi.getRoot(self))