Exemple #1
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeAdmUtilIdChooser = ensureUtility(root_folder, IAdmUtilIdChooser,
                                       'AdmUtilIdChooser',
                                       AdmUtilIdChooser,
                                       name='AdmUtilIdChooser',
                                       copy_to_zlog=False, asObject=True)

    if isinstance(madeAdmUtilIdChooser, AdmUtilIdChooser):
        logger.info(u"bootstrap: Ensure named AdmUtilIdChooser")
        sitem = root_folder.getSiteManager()
        dcore = IWriteZopeDublinCore(madeAdmUtilIdChooser)
        dcore.title = u"IdChooser Utility"
        dcore.created = datetime.utcnow()
        madeAdmUtilIdChooser.ikName = dcore.title
        for attrIdChooser in [
            # (name, counterStart, step, format)
            {'ikName': u'inv', 'counter': 0, 'step': 1, 'format': u'ID %05d'},
            ]:
            newIdChooser = IdChooser(**attrIdChooser)
            dcore = IWriteZopeDublinCore(newIdChooser)
            dcore.created = datetime.utcnow()
            dcore.title = attrIdChooser['ikName']
            madeAdmUtilIdChooser[newIdChooser.ikName] = newIdChooser
            sitem.registerUtility(newIdChooser,IIdChooser,
                                  name=newIdChooser.ikName)
        madeAdmUtilIdChooser.__post_init__()
        utils = [ util for util in sitem.registeredUtilities()
                    if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilIdChooser-Utility")

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #2
0
def bootStrapSubscriberDatabase(event):
    """initialisation of ict_ok supervisor on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)

    madeAdmUtilCategories = ensureUtility(root_folder,
                                          IAdmUtilCategories,
                                          'AdmUtilCategories',
                                          AdmUtilCategories,
                                          '',
                                          copy_to_zlog=False,
                                          asObject=True)

    if isinstance(madeAdmUtilCategories, AdmUtilCategories):
        logger.info(u"bootstrap: Ensure named AdmUtilCategories")
        dcore = IWriteZopeDublinCore(madeAdmUtilCategories)
        dcore.title = u"Categories Utility"
        dcore.created = datetime.utcnow()
        madeAdmUtilCategories.ikName = dcore.title
        for strHostGroup in [
                u'DNS-Server',
                u'File-Server',
                u'Miscellaneous-Server',
                u'SMTP-Server',
                u'Terminal-Server',
                u'Utility-Server',
                u'Workstation',
        ]:
            newHostGroup = AdmUtilCatHostGroup()
            newHostGroup.__setattr__("ikName", strHostGroup)
            dcore = IWriteZopeDublinCore(newHostGroup)
            dcore.created = datetime.utcnow()
            dcore.title = strHostGroup
            madeAdmUtilCategories[newHostGroup.objectID] = newHostGroup
        madeAdmUtilCategories.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilCategories-Utility")

    transaction.get().commit()
    connection.close()
Exemple #3
0
def bootStrapSubscriberDatabase(event):
    """initialisation of ict_ok supervisor on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)
    madeUtilManager = ensureUtility(root_folder,
                                    IUtilManager,
                                    'UtilManager',
                                    UtilManager,
                                    '',
                                    copy_to_zlog=False,
                                    asObject=True)

    if isinstance(madeUtilManager, UtilManager):
        logger.info(u"bootstrap: Ensure named UtilManager")
        dcore = IWriteZopeDublinCore(madeUtilManager)
        dcore.title = u"ICT_Ok Utility Manager"
        dcore.creators = (u"bootstrap auto-adder", )
        dcore.created = datetime.utcnow()
        madeUtilManager.ikName = dcore.title
        madeUtilManager.__post_init__()

    transaction.get().commit()
    connection.close()
Exemple #4
0
def bootStrapSubscriberDatabase(event):
    """initialisation of linux_ha utility on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    LinuxHaConnectionThread.database = event.database
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)

    madeAdmUtilLinuxHa = ensureUtility(root_folder,
                                       IAdmUtilLinuxHa,
                                       'AdmUtilLinuxHa',
                                       AdmUtilLinuxHa,
                                       '',
                                       copy_to_zlog=False,
                                       asObject=True)

    if isinstance(madeAdmUtilLinuxHa, AdmUtilLinuxHa):
        logger.info(u"bootstrap: Ensure named AdmUtilLinuxHa")
        dcore = IWriteZopeDublinCore(madeAdmUtilLinuxHa)
        dcore.title = u"Linux HA"
        dcore.created = datetime.utcnow()
        madeAdmUtilLinuxHa.ikName = dcore.title
        madeAdmUtilLinuxHa.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilLinuxHa-Utility")
    #else:
    #sitem = root_folder.getSiteManager()
    #utils = [ util for util in sitem.registeredUtilities()
    #if util.provided.isOrExtends(IAdmUtilLinuxHa)]
    #instAdmUtilLinuxHa = utils[0].component
    #instAdmUtilLinuxHa.connect2VimServer()

    #sitem = root_folder.getSiteManager()
    ## search for ICatalog
    #utils = [ util for util in sitem.registeredUtilities()
    #if util.provided.isOrExtends(ICatalog)]
    #instUtilityICatalog = utils[0].component
    #if not "host_esx_uuid_index" in instUtilityICatalog.keys():
    #host_esx_uuid_index = FieldIndex(interface=ISearchableText,
    #field_name='getSearchableEsxUuid',
    #field_callable=True)
    #instUtilityICatalog['host_esx_uuid_index'] = host_esx_uuid_index
    ## search for IAdmUtilSupervisor
    #utils = [ util for util in sitem.registeredUtilities()
    #if util.provided.isOrExtends(IAdmUtilSupervisor)]
    #instAdmUtilSupervisor = utils[0].component
    #instAdmUtilSupervisor.appendEventHistory(\
    #u" bootstrap: ICatalog - create esx uuid index for entry type 'host'")

    #recursiveLinuxHaSubscriber(root_folder)

    transaction.get().commit()
    connection.close()
def updateRecipeDCTitle(recipe, event):
    """Update a recipe's Dublin Core Title property with its name

    Consider a simple recipe object with a name:

      >>> from worldcookery.recipe import Recipe
      >>> noodles = Recipe()
      >>> noodles.name = u"Noodles"

    In order for Dublin Core to work we need it to be annotatable:

      >>> from zope.interface import alsoProvides
      >>> from zope.annotation.interfaces import IAttributeAnnotatable
      >>> alsoProvides(noodles, IAttributeAnnotatable)

    It does not have a title yet:

      >>> dc = IWriteZopeDublinCore(noodles)
      >>> dc.title
      u''

    Now we send out the event and, voila!, the title has been set:

      >>> from zope.event import notify
      >>> from zope.lifecycleevent import ObjectModifiedEvent
      >>> notify(ObjectModifiedEvent(noodles))
      >>> dc = IWriteZopeDublinCore(noodles)
      >>> dc.title
      u'Noodles'
    """
    dc = IWriteZopeDublinCore(recipe)
    dc.title = recipe.name
Exemple #6
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeNmap = ensureUtility(root_folder, 
                             IAdmUtilNMap,
                             'AdmUtilNMap', 
                             AdmUtilNMap,
                             name='NetScanner:NMap',
                             copy_to_zlog=False, 
                             asObject=True)

    if isinstance(madeNmap, AdmUtilNMap):
        logger.info(u"bootstrap: Ensure named AdmUtilNMap")
        dcore = IWriteZopeDublinCore(madeNmap)
        dcore.title = u"Net Scanner (NMap)"
        dcore.created = datetime.utcnow()
        madeNmap.ikName = dcore.title
        madeNmap.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                    if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilNMap-Utility")

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #7
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeAdmUtilLinuxHa = ensureUtility(root_folder,
                                       IAdmUtilLinuxHa,
                                       'AdmUtilLinuxHa',
                                       AdmUtilLinuxHa,
                                       name='AdmUtilLinuxHa',
                                       copy_to_zlog=False)

    if isinstance(madeAdmUtilLinuxHa, AdmUtilLinuxHa):
        logger.info(u"bootstrap: Ensure named AdmUtilLinuxHa")
        dcore = IWriteZopeDublinCore(madeAdmUtilLinuxHa)
        dcore.title = u"Linux HA"
        dcore.created = datetime.utcnow()
        madeAdmUtilLinuxHa.ikName = dcore.title
        madeAdmUtilLinuxHa.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilLinuxHa-Utility")
    else:
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilLinuxHa)
        ]
        instAdmUtilLinuxHa = utils[0].component
        instAdmUtilLinuxHa.connect2HaCluster()
    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #8
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeAdmUtilEventCrossbar = ensureUtility(root_folder,
                                             IAdmUtilEventCrossbar,
                                             'AdmUtilEventCrossbar',
                                             AdmUtilEventCrossbar,
                                             name='AdmUtilEventCrossbar',
                                             copy_to_zlog=False)

    if isinstance(madeAdmUtilEventCrossbar, AdmUtilEventCrossbar):
        logger.info(u"bootstrap: Ensure named AdmUtilEventCrossbar")
        dcore = IWriteZopeDublinCore(madeAdmUtilEventCrossbar)
        dcore.title = u"Event Crossbar"
        dcore.created = datetime.utcnow()
        madeAdmUtilEventCrossbar.ikName = dcore.title
        madeAdmUtilEventCrossbar.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilEventCrossbar-Utility")

    recursiveEventCrossbarSubscriber(root_folder)

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #9
0
def bootStrapSubscriberDatabase(event):
    """initialisation of eventcrossbar utility on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)

    madeAdmUtilCompliance = ensureUtility(root_folder,
                                          IAdmUtilCompliance,
                                          'AdmUtilCompliance',
                                          AdmUtilCompliance,
                                          '',
                                          copy_to_zlog=False,
                                          asObject=True)

    if isinstance(madeAdmUtilCompliance, AdmUtilCompliance):
        logger.info(u"bootstrap: Ensure named AdmUtilCompliance")
        dcore = IWriteZopeDublinCore(madeAdmUtilCompliance)
        dcore.title = u"Compliance Utiltiy"
        dcore.created = datetime.utcnow()
        madeAdmUtilCompliance.ikName = dcore.title
        madeAdmUtilCompliance.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made Compliance Utiltiy")
    else:
        ## search in global component registry
        #sitem = root_folder.getSiteManager()
        ## search for ICatalog
        #utils = [ util for util in sitem.registeredUtilities()
        #if util.provided.isOrExtends(ICatalog)]
        #instUtilityICatalog = utils[0].component
        #if not "host_oid_index" in instUtilityICatalog.keys():
        #host_oid_index = FieldIndex(interface=ISearchableText,
        #field_name='getSearchableHostOid',
        #field_callable=True)
        #instUtilityICatalog['host_oid_index'] = host_oid_index
        ## search for IAdmUtilSupervisor
        #utils = [ util for util in sitem.registeredUtilities()
        #if util.provided.isOrExtends(IAdmUtilSupervisor)]
        #instAdmUtilSupervisor = utils[0].component
        #instAdmUtilSupervisor.appendEventHistory(\
        #u" bootstrap: ICatalog - create oid index for entry type 'host'")
        if False:
            sitem = root_folder.getSiteManager()
            utils = [
                util for util in sitem.registeredUtilities()
                if util.provided.isOrExtends(IAdmUtilCompliance)
            ]
            instAdmUtilCompliance = utils[0].component
            logger.info(u"replacing all Requirements")
            fillUtilitiyWithReqs(instAdmUtilCompliance)
    transaction.get().commit()
    connection.close()
Exemple #10
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeSimple = ensureUtility(root_folder,
                               INotifierJabber,
                               'NotifierJabber',
                               NotifierJabber,
                               name='Notifier:Jabber',
                               copy_to_zlog=False)

    if isinstance(madeSimple, NotifierJabber):
        logger.info(u"bootstrap: Ensure named NotifierJabber")
        dcore = IWriteZopeDublinCore(madeSimple)
        dcore.title = u"Jabber Notifier"
        dcore.created = datetime.utcnow()
        madeSimple.ikName = dcore.title
        madeSimple.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made INotifierJabber-Utility")

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #11
0
def bootStrapSubscriberDatabase(event):
    """initialisation of Message-Queue-Utility on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)

    madeNotifier = ensureUtility(root_folder,
                                 INotifierUtil,
                                 'Notifier',
                                 NotifierUtil,
                                 '',
                                 copy_to_zlog=False,
                                 asObject=True)

    if isinstance(madeNotifier, NotifierUtil):
        logger.info(u"bootstrap: Ensure named Notifier")
        dcore = IWriteZopeDublinCore(madeNotifier)
        dcore.title = u"Notifier"
        dcore.created = datetime.utcnow()
        madeNotifier.ikName = dcore.title
        madeNotifier.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made INotifier-Utility")

    transaction.get().commit()
    connection.close()
def createWorkFlowContainer(event):
    site = event.object
    sm = site.getSiteManager()

    site['workflow'] = container = WorkFlowContainer()

    container['contributor'] = contributor = WorkList()
    sm.registerUtility(contributor, interfaces.IWorkList, name='contributor')
    dc = IWriteZopeDublinCore(contributor)
    dc.title = u"Contribution"
    dc.description = u"List of work items to be worked on by contributors."

    container['editor'] = editor = WorkList()
    sm.registerUtility(editor, interfaces.IWorkList, name='editor')
    dc = IWriteZopeDublinCore(editor)
    dc.title = u"Editorial Review"
    dc.description = u"List of work items to be reviewed by the site's editors."

    container['technicaleditor'] = technicaleditor = WorkList()
    sm.registerUtility(technicaleditor,
                       interfaces.IWorkList,
                       name='technicaleditor')
    dc = IWriteZopeDublinCore(technicaleditor)
    dc.title = u"Technical Review"
    dc.description = u"List of work items to be reviewed by the site's technical staff."

    container['script'] = script = WorkList()
    sm.registerUtility(script, interfaces.IWorkList, name='script')
    dc = IWriteZopeDublinCore(script)
    dc.title = u"Script"
    dc.description = u"List of work items generated by automatic scripts, e.g. database evolutions. Scripts usually create a huge bunch of items."

    sm['default']['workflow-relevant-oids'] = oids = SetIndex()
    sm.registerUtility(oids, IIndex, name='workflow-relevant-oids')

    sm['default']['workitem-contributor'] = contribs = SetIndex()
    sm.registerUtility(contribs, IIndex, name='workitem-contributors')

    sm['default']['workitem-processid'] = processid = ValueIndex()
    sm.registerUtility(processid, IIndex, name='workitem-processid')

    sm['default']['worklist-value'] = idx = ValueIndex()
    sm.registerUtility(idx, IIndex, name='worklist-value')
Exemple #13
0
def updateSuperclassDCTitle(ikObject, event):
    """
    Update an object's Dublin Core Title and back
    """
    for i in event.descriptions:
        if ISuperclass.isEqualOrExtendedBy(i.interface):
            dcore = IWriteZopeDublinCore(ikObject)
            dcore.title = ikObject.ikName
        if IZopeDublinCore.isEqualOrExtendedBy(i.interface):
            dcore = IZopeDublinCore(ikObject)
            ikObject.ikName = dcore.title
Exemple #14
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeAdmUtilCategories = ensureUtility(root_folder,
                                          IAdmUtilCategories,
                                          'AdmUtilCategories',
                                          AdmUtilCategories,
                                          name='AdmUtilCategories',
                                          copy_to_zlog=False)
    if isinstance(madeAdmUtilCategories, AdmUtilCategories):
        logger.info(u"bootstrap: Ensure named AdmUtilCategories")
        dcore = IWriteZopeDublinCore(madeAdmUtilCategories)
        dcore.title = u"Categories Utility"
        dcore.created = datetime.utcnow()
        madeAdmUtilCategories.ikName = dcore.title
        for strHostGroup in [
                u'DNS-Server',
                u'File-Server',
                u'Miscellaneous-Server',
                u'SMTP-Server',
                u'Terminal-Server',
                u'Utility-Server',
                u'Workstation',
        ]:
            newHostGroup = AdmUtilCatHostGroup()
            newHostGroup.__setattr__("ikName", strHostGroup)
            dcore = IWriteZopeDublinCore(newHostGroup)
            dcore.created = datetime.utcnow()
            dcore.title = strHostGroup
            madeAdmUtilCategories[newHostGroup.objectID] = newHostGroup
        madeAdmUtilCategories.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilCategories-Utility")

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #15
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeAdmUtilEsxVim = ensureUtility(root_folder,
                                      IAdmUtilEsxVim,
                                      'AdmUtilEsxVim',
                                      AdmUtilEsxVim,
                                      name='AdmUtilEsxVim',
                                      copy_to_zlog=False,
                                      asObject=True)

    if isinstance(madeAdmUtilEsxVim, AdmUtilEsxVim):
        logger.info(u"bootstrap: Ensure named AdmUtilEsxVim")
        dcore = IWriteZopeDublinCore(madeAdmUtilEsxVim)
        dcore.title = u"ESX VIM"
        dcore.created = datetime.utcnow()
        madeAdmUtilEsxVim.ikName = dcore.title
        madeAdmUtilEsxVim.__post_init__()
        #madeAdmUtilEsxVim.connect2VimServer()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilEsxVim-Utility")
    sitem = root_folder.getSiteManager()
    # search for ICatalog
    utils = [
        util for util in sitem.registeredUtilities()
        if util.provided.isOrExtends(ICatalog)
    ]
    instUtilityICatalog = utils[0].component
    if not "host_esx_uuid_index" in instUtilityICatalog.keys():
        host_esx_uuid_index = FieldIndex(interface=ISearchableText,
                                         field_name='getSearchableEsxUuid',
                                         field_callable=True)
        instUtilityICatalog['host_esx_uuid_index'] = host_esx_uuid_index
        # search for IAdmUtilSupervisor
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create esx uuid index for entry type 'host'")

    recursiveEsxVimSubscriber(root_folder)

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #16
0
def bootStrapSubscriberDatabase(event):
    """initialisation of ict_ok supervisor on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    SnmpdThread.database = event.database
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)

    madeAdmUtilSnmpd = ensureUtility(root_folder, IAdmUtilSnmpd,
                                       'AdmUtilSnmpd', AdmUtilSnmpd, '',
                                       copy_to_zlog=False, asObject=True)

    if isinstance(madeAdmUtilSnmpd, AdmUtilSnmpd):
        logger.info(u"bootstrap: Ensure named AdmUtilSnmpd")
        dcore = IWriteZopeDublinCore(madeAdmUtilSnmpd)
        dcore.title = u"Snmpd Utility"
        dcore.created = datetime.utcnow()
        madeAdmUtilSnmpd.ikName = dcore.title
        madeAdmUtilSnmpd.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                    if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilSnmpd-Utility")
        dbgOut = getNewMrtgData(madeAdmUtilSnmpd)
        if dbgOut:
            instAdmUtilSupervisor.appendEventHistory(dbgOut)
    else:
        # search in global component registry
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSnmpd)]
        instAdmUtilSnmpd = utils[0].component
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        dbgOut = updateMrtgData(instAdmUtilSnmpd)
        if dbgOut:
            instAdmUtilSupervisor.appendEventHistory(dbgOut)

    transaction.get().commit()
    connection.close()
Exemple #17
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeUtilManager = ensureUtility(root_folder,
                                    IUtilManager,
                                    'UtilManager',
                                    UtilManager,
                                    name='',
                                    copy_to_zlog=False)

    if isinstance(madeUtilManager, UtilManager):
        logger.info(u"bootstrap: Ensure named UtilManager")
        dcore = IWriteZopeDublinCore(madeUtilManager)
        dcore.title = u"ICT_Ok Utility Manager"
        dcore.creators = (u"bootstrap auto-adder", )
        dcore.created = datetime.utcnow()
        madeUtilManager.ikName = dcore.title
        madeUtilManager.__post_init__()

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #18
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeAdmUtilSnmpd = ensureUtility(root_folder, IAdmUtilSnmpd,
                                       'AdmUtilSnmpd', AdmUtilSnmpd,
                                       name='AdmUtilSnmpd',
                                       copy_to_zlog=False)

    if isinstance(madeAdmUtilSnmpd, AdmUtilSnmpd):
        logger.info(u"bootstrap: Ensure named AdmUtilSnmpd")
        dcore = IWriteZopeDublinCore(madeAdmUtilSnmpd)
        dcore.title = u"Snmpd Utility"
        dcore.created = datetime.utcnow()
        madeAdmUtilSnmpd.ikName = dcore.title
        madeAdmUtilSnmpd.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                    if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilSnmpd-Utility")
        dbgOut = getNewMrtgData(madeAdmUtilSnmpd)
        if dbgOut:
            instAdmUtilSupervisor.appendEventHistory(dbgOut)
    else:
        # search in global component registry
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSnmpd)]
        instAdmUtilSnmpd = utils[0].component
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        dbgOut = updateMrtgData(instAdmUtilSnmpd)
        if dbgOut:
            instAdmUtilSupervisor.appendEventHistory(dbgOut)

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #19
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeAdmUtilCompliance = ensureUtility(root_folder,
                                          IAdmUtilCompliance,
                                          'AdmUtilCompliance',
                                          AdmUtilCompliance,
                                          name='AdmUtilCompliance',
                                          copy_to_zlog=False,
                                          asObject=True)

    if isinstance(madeAdmUtilCompliance, AdmUtilCompliance):
        logger.info(u"bootstrap: Ensure named AdmUtilCompliance")
        dcore = IWriteZopeDublinCore(madeAdmUtilCompliance)
        dcore.title = u"Compliance Utiltiy"
        dcore.created = datetime.utcnow()
        madeAdmUtilCompliance.ikName = dcore.title
        madeAdmUtilCompliance.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made Compliance Utiltiy")
    else:
        if False:
            sitem = root_folder.getSiteManager()
            utils = [
                util for util in sitem.registeredUtilities()
                if util.provided.isOrExtends(IAdmUtilCompliance)
            ]
            instAdmUtilCompliance = utils[0].component
            logger.info(u"replacing all Requirements")
            fillUtilitiyWithReqs(instAdmUtilCompliance)
    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #20
0
def bootStrapSubscriberDatabase(event):
    """initialisation of usermanagement utility on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)

    madePluggableAuthentication = ensureUtility(\
        root_folder,
        IAdmUtilUserManagement,
        'AdmUtilUserManagement',
        AdmUtilUserManagement,
        copy_to_zlog=False,
        asObject=True)

    if isinstance(madePluggableAuthentication, PluggableAuthentication):
        logger.info(u"bootstrap: Ensure named AdmUtilUserManagement")
        dcore = IWriteZopeDublinCore(madePluggableAuthentication)
        dcore.title = u"User Authentication"
        dcore.created = datetime.utcnow()
        madePluggableAuthentication.ikName = dcore.title
        # madePluggableAuthentication.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made AdmUtilUserManagement-Utility")
        groups = GroupFolder(u'group.')
        madePluggableAuthentication[u'groups'] = groups
        principals = PrincipalFolder(u'principal.')
        madePluggableAuthentication[u'principals'] = principals
        madePluggableAuthentication.credentialsPlugins = \
                                   (u'Session Credentials',
                                    u'No Challenge if Authenticated',)
        p_user = InternalPrincipal(u'User',
                                   u'User',
                                   u'Initial User',
                                   passwordManagerName="SHA1")
        p_manager = InternalPrincipal(u'Manager',
                                      u'Manager',
                                      u'Initial Manager',
                                      passwordManagerName="SHA1")
        p_admin = InternalPrincipal(u'Administrator',
                                    u'Administrator',
                                    u'Initial Administrator',
                                    passwordManagerName="SHA1")
        p_developer = InternalPrincipal(u'Developer',
                                        u'Developer',
                                        u'Initial Developer',
                                        passwordManagerName="SHA1")
        principals[u'User'] = p_user
        principals[u'Manager'] = p_manager
        principals[u'Administrator'] = p_admin
        principals[u'Developer'] = p_developer
        grp_usr = GroupInformation(
            u'User', u'view & analyse data, generate reports '
            u'& leave notes at any object')
        grp_mgr = GroupInformation(
            u'Manager', u'search, connect, configure '
            u'& delete devices')
        grp_adm = GroupInformation(
            u'Administrator', u'install, configure '
            u'& administrate System')
        grp_dvl = GroupInformation(
            u'Developer', u'individual adaption '
            u'& development on System')
        grp_usr.principals = [u'principal.User']
        grp_mgr.principals = [u'principal.Manager']
        grp_adm.principals = [u'principal.Administrator']
        grp_dvl.principals = [u'principal.Developer']
        groups[u'User'] = grp_usr
        groups[u'Manager'] = grp_mgr
        groups[u'Administrator'] = grp_adm
        groups[u'Developer'] = grp_dvl
        madePluggableAuthentication.authenticatorPlugins = (u'groups',
                                                            u'principals')
        prm = IPrincipalRoleManager(root_folder)
        prm.assignRoleToPrincipal(u'org.ict_ok.usr', u'group.User')
        prm.assignRoleToPrincipal(u'org.ict_ok.mgr', u'group.Manager')
        prm.assignRoleToPrincipal(u'org.ict_ok.adm', u'group.Administrator')
        prm.assignRoleToPrincipal(u'org.ict_ok.dvl', u'group.Developer')
    transaction.get().commit()
    connection.close()
Exemple #21
0
 def setDcTitle(self, title):
     """
     set the Title to Dublin Core
     """
     dcore = IWriteZopeDublinCore(self)
     dcore.title = unicode(title)
Exemple #22
0
def createSuperclassDCTitle(ikObject, event):
    """
    Sets an object's Dublin Core Title
    """
    dcore = IWriteZopeDublinCore(ikObject)
    dcore.title = ikObject.ikName
Exemple #23
0
def createUtils(root_folder, connection=None, dummy_db=None):
    sitem = root_folder.getSiteManager()
    # search for ICatalog
    utils = [
        util for util in sitem.registeredUtilities()
        if util.provided.isOrExtends(ICatalog)
    ]
    instUtilityICatalog = utils[0].component
    if not "category_oid_index" in instUtilityICatalog.keys():
        category_oid_index = KeywordIndex(
            interface=ISearchableText,
            field_name='getSearchableCategoryOid',
            field_callable=True)
        instUtilityICatalog['category_oid_index'] = category_oid_index
        # search for IAdmUtilSupervisor
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for entry type 'category'")

    madeAdmUtilCategories = ensureUtility(root_folder,
                                          IAdmUtilCategories,
                                          'AdmUtilCategories',
                                          AdmUtilCategories,
                                          name='AdmUtilCategories',
                                          copy_to_zlog=False)
    if isinstance(madeAdmUtilCategories, AdmUtilCategories):
        logger.info(u"bootstrap: Ensure named AdmUtilCategories")
        dcore = IWriteZopeDublinCore(madeAdmUtilCategories)
        dcore.title = u"Categories Utility"
        dcore.created = datetime.utcnow()
        madeAdmUtilCategories.ikName = dcore.title
        #        for strHostGroup in [
        #            u'DNS-Server',
        #            u'File-Server',
        #            u'Miscellaneous-Server',
        #            u'SMTP-Server',
        #            u'Terminal-Server',
        #            u'Utility-Server',
        #            u'Workstation',
        #            ]:
        #            newHostGroup = AdmUtilCatHostGroup()
        #            newHostGroup.__setattr__("ikName", strHostGroup)
        #            dcore = IWriteZopeDublinCore(newHostGroup)
        #            dcore.created = datetime.utcnow()
        #            dcore.title = strHostGroup
        #            madeAdmUtilCategories[newHostGroup.objectID] = newHostGroup
        madeAdmUtilCategories.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IAdmUtilCategories-Utility")

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #24
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeAdmUtilSupervisor = ensureUtility(root_folder, 
                                          IAdmUtilSupervisor,
                                          'AdmUtilSupervisor', 
                                          AdmUtilSupervisor,
                                          name='AdmUtilSupervisor',
                                          copy_to_zlog=False)

    if isinstance(madeAdmUtilSupervisor, AdmUtilSupervisor):
        logger.info(u"bootstrap: Ensure named AdmUtilSupervisor")
    
        instAdmUtilSupervisor = madeAdmUtilSupervisor
        # attribute is defined readonly, so first toggle this
        IAdmUtilSupervisor['nbrStarts'].readonly = False
        instAdmUtilSupervisor.nbrStarts += 1
        IAdmUtilSupervisor['nbrStarts'].readonly = True
        instAdmUtilSupervisor.appendEventHistory(u"'web service' started (Vers. %s)" \
                                                 % getIkVersion())
        dcore = IWriteZopeDublinCore(madeAdmUtilSupervisor)
        dcore.title = u"Supervisor"
        dcore.created = datetime.utcnow()
        madeAdmUtilSupervisor.ikName = dcore.title
        madeAdmUtilSupervisor.__post_init__()
    else:
        # search in global component registry
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        # attribute is defined readonly, so first toggle this
        IAdmUtilSupervisor['nbrStarts'].readonly = False
        instAdmUtilSupervisor.nbrStarts += 1
        IAdmUtilSupervisor['nbrStarts'].readonly = True
        if dummy_db is not None:
            instAdmUtilSupervisor.appendEventHistory(\
                u"'web service' started (Vers. %s) (%d bytes) (%d objects)" \
                % (getIkVersion(), dummy_db.getSize(), dummy_db.objectCount()))
        dcore = IWriteZopeDublinCore(instAdmUtilSupervisor)
        dcore.title = u"Supervisor"
        dcore.modified = datetime.utcnow()
        
    madeUtilityIIntIds = ensureUtility(root_folder, 
                                       IIntIds, 
                                       '', 
                                       IntIds, 
                                       name='', 
                                       copy_to_zlog=False)

    if isinstance(madeUtilityIIntIds, IntIds):
        logger.info(u"bootstrap: made IIntIds-Utility")
        dcore = IWriteZopeDublinCore(madeUtilityIIntIds)
        dcore.title = u"ICT_Ok Object Id Manager"
        dcore.created = datetime.utcnow()
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                    if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IIntIds-Utility")
        
    madeUtilityO2ORels = ensureUtility(root_folder, 
                                       IO2OStringTypeRelationships, 
                                       '', 
                                       O2OStringTypeRelationships, 
                                       name='',
                                       copy_to_zlog=False)

    if isinstance(madeUtilityO2ORels, O2OStringTypeRelationships):
        logger.info(u"bootstrap: made O2ORels-Utility")
        #dcore = IWriteZopeDublinCore(madeUtilityO2ORels)
        #dcore.title = u"ICT_Ok Object Relation Manager"
        #dcore.created = datetime.utcnow()
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                    if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made O2ORels-Utility")
    else:
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IO2OStringTypeRelationships)]
        instUtilityO2ORels = utils[0].component

#    import pdb
#    pdb.set_trace()

    madeUtilityICatalog = ensureUtility(root_folder, 
                                        ICatalog, 
                                        '', 
                                        Catalog, 
                                        name='',
                                        copy_to_zlog=False)

    if isinstance(madeUtilityICatalog, Catalog):
        logger.info(u"bootstrap: made ICatalog-Utility")
        dcore = IWriteZopeDublinCore(madeUtilityICatalog)
        dcore.title = u"ICT_Ok Search Manager"
        dcore.created = datetime.utcnow()
#        oid_index = TextIndex(interface=ISearchableText,
#                              field_name='getSearchableOid',
#                              field_callable=True)
#        madeUtilityICatalog['oid_index'] = oid_index
        sitem = root_folder.getSiteManager()
        utils = [ util for util in sitem.registeredUtilities()
                    if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made ICatalog-Utility")

    # search in global component registry
    sitem = root_folder.getSiteManager()
    # search for ICatalog
    utils = [ util for util in sitem.registeredUtilities()
              if util.provided.isOrExtends(ICatalog)]
    instUtilityICatalog = utils[0].component
    if not "oid_index" in instUtilityICatalog.keys():
        oid_index = KeywordIndex(interface=ISearchableText,
                                 field_name='getSearchableOid',
                                 field_callable=True)
        instUtilityICatalog['oid_index'] = oid_index
        # search for IAdmUtilSupervisor
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all comments")
    if not "all_comments_index" in instUtilityICatalog.keys():
        all_comments_index = TextIndex(interface=ISearchableText,
                                        field_name='getSearchableComments',
                                        field_callable=True)
        instUtilityICatalog['all_comments_index'] = all_comments_index
        # search for IAdmUtilSupervisor
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all comments")
    if not "all_notes_index" in instUtilityICatalog.keys():
        all_notes_index = TextIndex(interface=ISearchableText,
                                        field_name='getSearchableNotes',
                                        field_callable=True)
        instUtilityICatalog['all_notes_index'] = all_notes_index
        # search for IAdmUtilSupervisor
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all notes")
    if not "all_fulltext_index" in instUtilityICatalog.keys():
        all_fulltext_index = TextIndex(interface=ISearchableText,
                                        field_name='getSearchableFullText',
                                        field_callable=True)
        instUtilityICatalog['all_fulltext_index'] = all_fulltext_index
        # search for IAdmUtilSupervisor
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all fulltext")
    if not "all_interfaces_index" in instUtilityICatalog.keys():
        all_interfaces_index = KeywordIndex(interface=IKeywordQuerying,
                                            field_name='getSearchableInterfaces',
                                            field_callable=True)
        instUtilityICatalog['all_interfaces_index'] = all_interfaces_index
        # search for IAdmUtilSupervisor
        utils = [ util for util in sitem.registeredUtilities()
                  if util.provided.isOrExtends(IAdmUtilSupervisor)]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all interfaces")
    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #25
0
def bootStrapSubscriberDatabase(event):
    """initialisation of ict_ok supervisor on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)
    madeAdmUtilSupervisor = ensureUtility(root_folder,
                                          IAdmUtilSupervisor,
                                          'AdmUtilSupervisor',
                                          AdmUtilSupervisor,
                                          '',
                                          copy_to_zlog=False,
                                          asObject=True)

    if isinstance(madeAdmUtilSupervisor, AdmUtilSupervisor):
        logger.info(u"bootstrap: Ensure named AdmUtilSupervisor")

        instAdmUtilSupervisor = madeAdmUtilSupervisor
        # attribute is defined readonly, so first toggle this
        IAdmUtilSupervisor['nbrStarts'].readonly = False
        instAdmUtilSupervisor.nbrStarts += 1
        IAdmUtilSupervisor['nbrStarts'].readonly = True
        instAdmUtilSupervisor.appendEventHistory(u"Database started (Vers. %s)" \
                                                 % getIkVersion())
        dcore = IWriteZopeDublinCore(madeAdmUtilSupervisor)
        dcore.title = u"ICT_Ok Supervisor"
        dcore.created = datetime.utcnow()
        madeAdmUtilSupervisor.ikName = dcore.title
        madeAdmUtilSupervisor.__post_init__()
    else:
        # search in global component registry
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        # attribute is defined readonly, so first toggle this
        IAdmUtilSupervisor['nbrStarts'].readonly = False
        instAdmUtilSupervisor.nbrStarts += 1
        IAdmUtilSupervisor['nbrStarts'].readonly = True
        instAdmUtilSupervisor.appendEventHistory(\
            u"Database started (Vers. %s) (%d bytes) (%d objects)" \
            % (getIkVersion(), dummy_db.getSize(), dummy_db.objectCount()))
        dcore = IWriteZopeDublinCore(instAdmUtilSupervisor)
        dcore.title = u"ICT_Ok Supervisor"
        dcore.modified = datetime.utcnow()

    madeUtilityIIntIds = ensureUtility(root_folder,
                                       IIntIds,
                                       '',
                                       IntIds,
                                       '',
                                       copy_to_zlog=False,
                                       asObject=True)

    if isinstance(madeUtilityIIntIds, IntIds):
        logger.info(u"bootstrap: made IIntIds-Utility")
        dcore = IWriteZopeDublinCore(madeUtilityIIntIds)
        dcore.title = u"ICT_Ok Object Id Manager"
        dcore.created = datetime.utcnow()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IIntIds-Utility")

    madeUtilityICatalog = ensureUtility(root_folder,
                                        ICatalog,
                                        '',
                                        Catalog,
                                        '',
                                        copy_to_zlog=False,
                                        asObject=True)

    if isinstance(madeUtilityICatalog, Catalog):
        logger.info(u"bootstrap: made ICatalog-Utility")
        dcore = IWriteZopeDublinCore(madeUtilityICatalog)
        dcore.title = u"ICT_Ok Search Manager"
        dcore.created = datetime.utcnow()
        oid_index = TextIndex(interface=ISearchableText,
                              field_name='getSearchableOid',
                              field_callable=True)
        madeUtilityICatalog['oid_index'] = oid_index
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made ICatalog-Utility")

    # search in global component registry
    sitem = root_folder.getSiteManager()
    # search for ICatalog
    utils = [
        util for util in sitem.registeredUtilities()
        if util.provided.isOrExtends(ICatalog)
    ]
    instUtilityICatalog = utils[0].component
    if not "all_comments_index" in instUtilityICatalog.keys():
        all_comments_index = TextIndex(interface=ISearchableText,
                                       field_name='getSearchableComments',
                                       field_callable=True)
        instUtilityICatalog['all_comments_index'] = all_comments_index
        # search for IAdmUtilSupervisor
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all comments")
    if not "all_notes_index" in instUtilityICatalog.keys():
        all_notes_index = TextIndex(interface=ISearchableText,
                                    field_name='getSearchableNotes',
                                    field_callable=True)
        instUtilityICatalog['all_notes_index'] = all_notes_index
        # search for IAdmUtilSupervisor
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all notes")

    transaction.get().commit()
    connection.close()
Exemple #26
0
def bootStrapSubscriber(event):
    """initialisation of IntId utility on first database startup
    """
    if appsetup.getConfigContext().hasFeature('devmode'):
        logger.info(u"starting bootStrapSubscriberDatabase (org.ict_ok...)")
    dummy_db, connection, dummy_root, root_folder = \
            getInformationFromEvent(event)

    madeUtilityIIntIds = ensureUtility(root_folder,
                                       IIntIds,
                                       '',
                                       IntIds,
                                       '',
                                       copy_to_zlog=False,
                                       asObject=True)

    if isinstance(madeUtilityIIntIds, IntIds):
        logger.info(u"bootstrap: made IIntIds-Utility")
        dcore = IWriteZopeDublinCore(madeUtilityIIntIds)
        dcore.title = u"Object Id Manager"
        dcore.created = datetime.now(berlinTZ)
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made IIntIds-Utility")

    madeUtilityICatalog = ensureUtility(root_folder,
                                        ICatalog,
                                        '',
                                        Catalog,
                                        '',
                                        copy_to_zlog=False,
                                        asObject=True)

    if isinstance(madeUtilityICatalog, Catalog):
        logger.info(u"bootstrap: made ICatalog-Utility")
        dcore = IWriteZopeDublinCore(madeUtilityICatalog)
        dcore.title = u"Search Manager"
        dcore.created = datetime.now(berlinTZ)
        oid_index = TextIndex(interface=ISearchableText,
                              field_name='getSearchableOid',
                              field_callable=True)
        madeUtilityICatalog['oid_index'] = oid_index
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made ICatalog-Utility")

    # search in global component registry
    sitem = root_folder.getSiteManager()
    # search for ICatalog
    utils = [
        util for util in sitem.registeredUtilities()
        if util.provided.isOrExtends(ICatalog)
    ]
    instUtilityICatalog = utils[0].component
    if not "all_comments_index" in instUtilityICatalog.keys():
        all_comments_index = TextIndex(interface=ISearchableText,
                                       field_name='getSearchableComments',
                                       field_callable=True)
        instUtilityICatalog['all_comments_index'] = all_comments_index
        # search for IAdmUtilSupervisor
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all comments")
    if not "all_notes_index" in instUtilityICatalog.keys():
        all_notes_index = TextIndex(interface=ISearchableText,
                                    field_name='getSearchableNotes',
                                    field_callable=True)
        instUtilityICatalog['all_notes_index'] = all_notes_index
        # search for IAdmUtilSupervisor
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: ICatalog - create index for all notes")

    transaction.get().commit()
    connection.close()
Exemple #27
0
def createUtils(root_folder, connection=None, dummy_db=None):
    madeLdapAdapter = ensureUtility(\
        root_folder,
        IManageableLDAPAdapter,
        'ManageableLDAPAdapter',
        ManageableLDAPAdapter,
        name='ManageableLDAPAdapter',
        copy_to_zlog=False)

    madeLdapPas = ensureUtility(\
        root_folder,
        IMyLDAPAuthentication,
        'MyLDAPAuthentication',
        MyLDAPAuthentication,
        name='MyLDAPAuthentication',
        copy_to_zlog=False)

    if isinstance(madeLdapPas, MyLDAPAuthentication):
        madeLdapPas.adapterName = 'ManageableLDAPAdapter'
        madeLdapPas.searchBase = u'ou=staff,o=ikom-online,c=de,o=ifdd'
        madeLdapPas.searchScope = u'sub'
        madeLdapPas.groupsSearchBase = u'cn=testIKOMtrol,o=ikom-online,c=de,o=ifdd'
        madeLdapPas.groupsSearchScope = u'one'
        madeLdapPas.loginAttribute = u'uid'
        madeLdapPas.principalIdPrefix = u'principal.'
        madeLdapPas.idAttribute = u'uid'
        madeLdapPas.titleAttribute = u'cn'
        madeLdapPas.groupIdAttribute = u'cn'

    madePluggableAuthentication = ensureUtility(\
        root_folder,
        IAdmUtilUserManagement,
        'AdmUtilUserManagement',
        AdmUtilUserManagement,
        name='',
        copy_to_zlog=False)

    if isinstance(madePluggableAuthentication, PluggableAuthentication):
        logger.info(u"bootstrap: Ensure named AdmUtilUserManagement")
        dcore = IWriteZopeDublinCore(madePluggableAuthentication)
        dcore.title = u"User Authentication"
        dcore.created = datetime.utcnow()
        madePluggableAuthentication.ikName = dcore.title
        # madePluggableAuthentication.__post_init__()
        sitem = root_folder.getSiteManager()
        utils = [
            util for util in sitem.registeredUtilities()
            if util.provided.isOrExtends(IAdmUtilSupervisor)
        ]
        instAdmUtilSupervisor = utils[0].component
        instAdmUtilSupervisor.appendEventHistory(\
            u" bootstrap: made AdmUtilUserManagement-Utility")
        groups = GroupFolder(u'group.')
        madePluggableAuthentication[u'groups'] = groups
        principals = PrincipalFolder(u'principal.')
        madePluggableAuthentication[u'principals'] = principals
        madePluggableAuthentication.credentialsPlugins = \
                                   (u'Session Credentials',
                                    u'No Challenge if Authenticated',)
        p_user = InternalPrincipal(u'User',
                                   u'User',
                                   u'Initial User',
                                   passwordManagerName="SHA1")
        p_manager = InternalPrincipal(u'Manager',
                                      u'Manager',
                                      u'Initial Manager',
                                      passwordManagerName="SHA1")
        p_admin = InternalPrincipal(u'Administrator',
                                    u'Administrator',
                                    u'Initial Administrator',
                                    passwordManagerName="SHA1")
        p_developer = InternalPrincipal(u'Developer',
                                        u'Developer',
                                        u'Initial Developer',
                                        passwordManagerName="SHA1")
        principals[u'User'] = p_user
        principals[u'Manager'] = p_manager
        principals[u'Administrator'] = p_admin
        principals[u'Developer'] = p_developer
        grp_usr = GroupInformation(
            u'User', u'view & analyse data, generate reports '
            u'& leave notes at any object')
        grp_mgr = GroupInformation(
            u'Manager', u'search, connect, configure '
            u'& delete devices')
        grp_adm = GroupInformation(
            u'Administrator', u'install, configure '
            u'& administrate System')
        grp_dvl = GroupInformation(
            u'Developer', u'individual adaption '
            u'& development on System')
        grp_usr.principals = [u'principal.User']
        grp_mgr.principals = [u'principal.Manager']
        grp_adm.principals = [u'principal.Administrator']
        grp_dvl.principals = [u'principal.Developer']
        groups[u'User'] = grp_usr
        groups[u'Manager'] = grp_mgr
        groups[u'Administrator'] = grp_adm
        groups[u'Developer'] = grp_dvl
        #import pdb
        #pdb.set_trace()
        madePluggableAuthentication[u'LDAPAuthentication'] = madeLdapPas
        madePluggableAuthentication.authenticatorPlugins = \
            (u'groups', u'principals', u'LDAPAuthentication')
        prm = IPrincipalRoleManager(root_folder)
        prm.assignRoleToPrincipal(u'org.ict_ok.usr', u'group.User')
        prm.assignRoleToPrincipal(u'org.ict_ok.mgr', u'group.Manager')
        prm.assignRoleToPrincipal(u'org.ict_ok.adm', u'group.Administrator')
        prm.assignRoleToPrincipal(u'org.ict_ok.dvl', u'group.Developer')

    transaction.get().commit()
    if connection is not None:
        connection.close()
Exemple #28
0
def evolve(context):
    """ create workflow components
    """

    # We moved the imports here because of getInfo which only takes
    # the __doc__ string in evolve. getInfo should not import
    # anything.
    import zope.interface
    import zope.component
    from zope.app.zopeappgenerations import getRootFolder
    from zope.app.generations.utility import findObjectsProviding
    from zope.app.component import hooks
    
    from quotationtool.site.interfaces import IQuotationtoolSite

    root = getRootFolder(context)

    site = None
    for s in findObjectsProviding(root, IQuotationtoolSite):
        site = s
        break
    if site is None:
        raise Exception('No quotationtool site!')
    hooks.setSite(site)

    sm = site.getSiteManager()
    default = sm['default']

    from zope.dublincore.interfaces import IWriteZopeDublinCore
    from quotationtool.workflow.container import WorkFlowContainer
    from quotationtool.workflow.worklist import WorkList
    from quotationtool.workflow import interfaces
    from z3c.indexer.index import SetIndex
    from z3c.indexer.interfaces import IIndex

    site['workflow'] = container = WorkFlowContainer()

    container['contributor'] = contributor = WorkList()
    sm.registerUtility(contributor, interfaces.IWorkList, name='contributor')
    dc = IWriteZopeDublinCore(contributor)
    dc.title = u"Contribution"
    dc.description = u"List of work items to be worked on by contributors."

    container['editor'] = editor = WorkList()
    sm.registerUtility(editor, interfaces.IWorkList, name='editor')
    dc = IWriteZopeDublinCore(editor)
    dc.title = u"Editorial Review"
    dc.description = u"List of work items to be reviewed by the site's editors."

    container['technicaleditor'] = technicaleditor = WorkList()
    sm.registerUtility(technicaleditor, interfaces.IWorkList, name='technicaleditor')
    dc = IWriteZopeDublinCore(technicaleditor)
    dc.title = u"Technical Review"
    dc.description = u"List of work items to be reviewed by the site's technical staff."

    container['script'] = script = WorkList()
    sm.registerUtility(script, interfaces.IWorkList, name='script')
    dc = IWriteZopeDublinCore(script)
    dc.title = u"Script"
    dc.description = u"List of work items generated by automatic scripts, e.g. database evolutions. Scripts usually create a huge bunch of items."

    sm['default']['workflow-relevant-oids'] = oids = SetIndex()
    sm.registerUtility(oids, IIndex, name='workflow-relevant-oids')

    sm['default']['workitem-contributor'] = contribs = SetIndex()
    sm.registerUtility(contribs, IIndex, name='workitem-contributors')