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()
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()
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()
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
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()
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()
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()
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()
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()
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')
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
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()
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()
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()
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()
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()
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()
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()
def setDcTitle(self, title): """ set the Title to Dublin Core """ dcore = IWriteZopeDublinCore(self) dcore.title = unicode(title)
def createSuperclassDCTitle(ikObject, event): """ Sets an object's Dublin Core Title """ dcore = IWriteZopeDublinCore(ikObject) dcore.title = ikObject.ikName
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()
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()
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()
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()
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()
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')