Пример #1
0
def bootStrapSubscriber(event):
    db, connection, root, root_folder = getInformationFromEvent(event)

    ensureUtility(root_folder, IErrorReportingUtility, '',
                  RootErrorReportingUtility, copy_to_zlog=False, asObject=True)

    transaction.commit()
    connection.close()
Пример #2
0
def bootStrapSubscriber(event):
    db, connection, root, root_folder = getInformationFromEvent(event)

    ensureUtility(
        root_folder, IClientIdManager, 'CookieClientIdManager',
        CookieClientIdManager, asObject=True)

    transaction.commit()
    connection.close()
Пример #3
0
def bootStrapSubscriber(event):
    """Subscriber to the IDataBaseOpenedEvent

    Create utility at that time if not yet present
    """
    db, connection, root, root_folder = getInformationFromEvent(event)

    ensureUtility(root_folder, IErrorReportingUtility, '',
                  RootErrorReportingUtility, copy_to_zlog=True)

    transaction.commit()
    connection.close()
Пример #4
0
def bootStrapSubscriber(event):
    """Subscriber to the IDatabaseOpenedWithRootEvent

    Create utility at that time if not yet present
    """

    db, connection, root, root_folder = getInformationFromEvent(event)

    ensureUtility(root_folder, IPrincipalAnnotationUtility,
                  'PrincipalAnnotation', PrincipalAnnotationUtility)

    transaction.commit()
    connection.close()
Пример #5
0
def errorSubscriber(event):
    """Subscriber to the IDataBaseOpenedEvent

    Create utility at that time if not yet present
    """

    db, connection, root, root_folder = getInformationFromEvent(event)

    ensureUtility(root_folder, IErrorReportingUtility, '',
                  RootErrorReportingUtility, copy_to_zlog=True,
                  _ignored_exceptions=('Unauthorized',))

    transaction.commit()
    connection.close()
Пример #6
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()
Пример #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()
Пример #8
0
    def test_ensureUtility(self):
        self.createRFAndSM()

        db, connection, root, root_folder = getInformationFromEvent(
            EventStub(self.db))

        # TODO: check EventSub
        root_folder = self.root_folder
        for i in range(2):
            cx = self.db.open()
            name = ensureUtility(root_folder, IErrorReportingUtility,
                                 'ErrorReporting', ErrorReportingUtility,
                                 'ErrorReporting')

            if i == 0:
                self.assertEqual(name, 'ErrorReporting')
            else:
                self.assertEqual(name, None)

            root = cx.root()
            root_folder = root[ZopePublication.root_name]

            package_name = '/++etc++site/default'
            package = traverse(self.root_folder, package_name)

            self.assert_(IErrorReportingUtility.providedBy(
                traverse(package, 'ErrorReporting')))
            transaction.commit()

        cx.close()
Пример #9
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()
Пример #10
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()
Пример #11
0
    def test_ensureUtilityForSubSite(self):
        self.createRFAndSM()

        db, connection, root, root_folder = getInformationFromEvent(
            EventStub(self.db))

        sub_folder = root_folder['sub_folder']
        ensureUtility(sub_folder, IErrorReportingUtility,
                     'ErrorReporting', ErrorReportingUtility,
                     'ErrorReporting')
    
        # Make sure it was created on the sub folder, not the root folder
        got_utility = zapi.getUtility(IErrorReportingUtility, name='ErrorReporting',
                context=sub_folder)
        got_path = zapi.getPath(got_utility)
        self.assertEquals("/sub_folder/++etc++site/default/ErrorReporting", got_path)
Пример #12
0
def createAuthenticationUtils(obj):
    """
    creates PAU and all the containing objects
    """
    madePluggableAuthentication = ensureUtility(\
        obj,
        IAuthentication,
        '',
        PluggableAuthentication,
        copy_to_zlog=False,
        asObject=True)

    if madePluggableAuthentication:
        auth = madePluggableAuthentication
        auth.credentialsPlugins = (u'Session Credentials', )
        addUtilityToPAU(auth, IAuthenticatorPlugin, PrincipalFolder,
                        'principal_folder', u'Benutzerverwaltung', obj)
        addUtilityToPAU(auth, IAuthenticatorPlugin, GroupFolder,
                        'group_folder', u'Gruppenverwaltung', obj)
        auth.authenticatorPlugins = (
            u'Benutzerverwaltung',
            u'Gruppenverwaltung',
        )
        group_folder = auth['group_folder']
        for group in groups:
            _addGroupInformation(group_folder, group['id'], group['title'],
                                 group['description'])
        principal_folder = auth['principal_folder']
        _addPrincipal(principal_folder, "markus", "markus", "Markus Leist")
Пример #13
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()
Пример #14
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()
Пример #15
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()
Пример #16
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()
Пример #17
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()
Пример #18
0
def bootStrapSubscriber(event):
    """Subscriber to the IDataBaseOpenedEvent

    Create utility at that time if not yet present
    """
    db, connection, root, root_folder = getInformationFromEvent(event)

    ensureUtility(
        root_folder,
        IClientIdManager, 'CookieClientIdManager',
        CookieClientIdManager)
    ensureUtility(
        root_folder,
        ISessionDataContainer, 'PersistentSessionDataContainer',
        PersistentSessionDataContainer)

    transaction.commit()
    connection.close()
def bootStrapSubscriber(event):
    """ Subscriber to the IDatabaseOpenedWithRoot event. Create a global
    intid utility if there is not yet one.

    The intid utility is needed for indexing entries."""

    db, connection, root, root_folder = getInformationFromEvent(event)

    ensureUtility(
        root_folder,
        IIntIds,
        '',
        IntIds,
    )

    #ut = zope.component.queryUtility(
    #    IIntIds, default = None)
    #assert(ut is not None)

    transaction.commit()
    connection.close()
Пример #20
0
def setSiteManagerWhenAdded(site, event):
    """
    event handler to register
    """
    if ISlave.providedBy(event.object):
        site.setSiteManager(LocalSiteManager(site))
        try:
            old_site = hooks.getSite()
            hooks.setSite(site)
            ensureUtility(event.object,
                          IIntIds,
                          '',
                          IntIds,
                          name='IntIds',
                          copy_to_zlog=False,
                          asObject=True)
            madeUtilityICatalog = ensureUtility(\
                event.object,
                ICatalog,
                '',
                Catalog,
                name='Catalog',
                copy_to_zlog=False,
                asObject=True)
            oid_index = TextIndex(interface=ISearchableText,
                                  field_name='getSearchableOid',
                                  field_callable=True)
            madeUtilityICatalog['oid_index'] = oid_index
            madeAdmUtilSupervisor = ensureUtility(\
                event.object,
                IAdmUtilSupervisor,
                'AdmUtilSupervisor',
                AdmUtilSupervisor,
                name='AdmUtilSupervisor',
                copy_to_zlog=False,
                asObject=True)
            madeAdmUtilSupervisor.status2Master = u"will be a slave"
        finally:
            hooks.setSite(old_site)
Пример #21
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()
Пример #22
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()
Пример #23
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()
Пример #24
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()
Пример #25
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()
Пример #26
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()
Пример #27
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()
Пример #28
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()
Пример #29
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()
Пример #30
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()
Пример #31
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()
Пример #32
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()
Пример #33
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()