예제 #1
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)
    # 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_esxuuid_index" in instUtilityICatalog.keys():
        host_esxuuid_index = TextIndex(interface=ISearchableText,
                                       field_name='getSearchableHostEsxUuid',
                                       field_callable=True)
        instUtilityICatalog['host_esxuuid_index'] = host_esxuuid_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 'vmware_esx'")
    # creates and stores the local system in ZODB
    # createLocalSystem(root_folder)

    transaction.get().commit()
    connection.close()
예제 #2
0
파일: host.py 프로젝트: mleist/ict-ok.org
 def actions(self):
     """
     gives us the action dict of the object
     """
     try:
         objId = getUtility(IIntIds).getId(self.context)
     except:
         objId = 1000
     retList = []
     if appsetup.getConfigContext().hasFeature('devmode') and \
        checkPermission('org.ict_ok.components.host.Edit', self.context):
         quoter = URLQuote(self.request.getURL())
         tmpDict = {}
         tmpDict['oid'] = u"c%sshutdownHost" % objId
         tmpDict['title'] = _(u"shutdown host")
         tmpDict['href'] = u"%s/@@shutdownHost.html?nextURL=%s" % \
                (zapi.getPath( self.context),
                 quoter.quote())
         retList.append(tmpDict)
         tmpDict = {}
         tmpDict['oid'] = u"c%senterMaintenanceMode" % objId
         tmpDict['title'] = _(u"enter maintenance mode")
         tmpDict['href'] = u"%s/@@enterMaintenanceMode.html?nextURL=%s" % \
                (zapi.getPath( self.context),
                 quoter.quote())
         retList.append(tmpDict)
     return SuperHostDetails.actions(self) + retList
예제 #3
0
def onWSGIApplicationCreatedEvent(application, event):
    """Subscriber to the ore.wsgiapp.interfaces.IWSGIApplicationCreatedEvent.
    """
    initializer = model_interfaces.IBungeniSetup(application)
    initializer.setUp()
    log.debug("onWSGIApplicationCreatedEvent: _features: %s" % (
        getConfigContext()._features))
예제 #4
0
파일: host.py 프로젝트: mleist/ict-ok.org
 def actions(self):
     """
     gives us the action dict of the object
     """
     try:
         objId = getUtility(IIntIds).getId(self.context)
     except:
         objId = 1000
     retList = []
     if appsetup.getConfigContext().hasFeature('devmode') and \
        checkPermission('org.ict_ok.components.host.Edit', self.context):
         quoter = URLQuote(self.request.getURL())
         tmpDict = {}
         tmpDict['oid'] = u"c%spoweroff" % objId
         tmpDict['title'] = _(u"Power off")
         tmpDict['href'] = u"%s/@@poweroff.html?nextURL=%s" % \
                (zapi.absoluteURL(self.context, self.request),
                 quoter.quote())
         retList.append(tmpDict)
         tmpDict = {}
         tmpDict['oid'] = u"c%spoweron" % objId
         tmpDict['title'] = _(u"Power on")
         tmpDict['href'] = u"%s/@@poweron.html?nextURL=%s" % \
                (zapi.absoluteURL(self.context, self.request),
                 quoter.quote())
         retList.append(tmpDict)
     return SuperHostDetails.actions(self) + retList
예제 #5
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()
예제 #6
0
 def actions(self):
     """
     gives us the action dict of the object
     """
     try:
         objId = getUtility(IIntIds).getId(self.context)
     except:
         objId = 1000
     retList = []
     if appsetup.getConfigContext().hasFeature('devmode') and \
        checkPermission('org.ict_ok.components.host.Edit', self.context):
         quoter = URLQuote(self.request.getURL())
         tmpDict = {}
         tmpDict['oid'] = u"c%strigger_online" % objId
         tmpDict['title'] = _(u"Trigger online")
         tmpDict['href'] = u"%s/@@trigger_online?nextURL=%s" % \
                (zapi.absoluteURL(self.context, self.request),
                 quoter.quote())
         retList.append(tmpDict)
         tmpDict = {}
         tmpDict['oid'] = u"c%strigger_offline" % objId
         tmpDict['title'] = _(u"Trigger offline")
         tmpDict['href'] = u"%s/@@trigger_offline?nextURL=%s" % \
                (zapi.absoluteURL(self.context, self.request),
                 quoter.quote())
         retList.append(tmpDict)
         tmpDict = {}
         tmpDict['oid'] = u"c%strigger_not1" % objId
         tmpDict['title'] = _(u"Trigger notification1")
         tmpDict['href'] = u"%s/@@trigger_not1?nextURL=%s" % \
                (zapi.absoluteURL(self.context, self.request),
                 quoter.quote())
         retList.append(tmpDict)
     return retList
예제 #7
0
def has_feature(feature_name):
    """Whether the application had been setup with the feature or not.
    
    (feature_name:str) -> bool
    """
    # via zope.configuration.config.ConfigurationMachine.hasFeature(name)
    return getConfigContext().hasFeature(feature_name)
예제 #8
0
def has_feature(feature_name):
    """Whether the application had been setup with the feature or not.
    
    (feature_name:str) -> bool
    """
    # via zope.configuration.config.ConfigurationMachine.hasFeature(name)
    return getConfigContext().hasFeature(feature_name)
예제 #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 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()
예제 #11
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()
예제 #12
0
def onWSGIApplicationCreatedEvent(application, event):
    """Subscriber to the ore.wsgiapp.interfaces.IWSGIApplicationCreatedEvent.
    """
    initializer = model_interfaces.IBungeniSetup(application)
    initializer.setUp()
    log.debug("onWSGIApplicationCreatedEvent: _features: %s" %
              (getConfigContext()._features))
예제 #13
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)
    createUtils(root_folder, connection, dummy_db)
예제 #14
0
파일: rest.py 프로젝트: bendavis78/zope
 def render(self, view):
     view.response.setHeader('Content-Type', 'text/html')
     settings_overrides = self.getNamespace(view).get(
         'settings_overrides', {})
     if not (self._cooked) or getConfigContext().hasFeature('devmode'):
         self.setFromFilename(self.filename, self._prefix)
         self._cooked = RSTToHTMLRenderer(
             self._template,
             view.request).render(settings_overrides=settings_overrides)
     return self._cooked
예제 #15
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)
    createUtils(root_folder, connection, dummy_db)
    from org.ict_ok.admin_utils.compliance.lxml_demo import lxmlDemo
    lxmlDemo()
예제 #16
0
    def getDeveloperMode(self):
        """See zope.app.applicationcontrol.interfaces.IRuntimeInfo"""
        if appsetup is None:
            return 'undefined'

        cc=appsetup.getConfigContext()
        if cc == None:  # make the test run
            return 'undefined'
        if cc.hasFeature('devmode'):
            return 'On'
        return 'Off'
예제 #17
0
def on_wsgi_application_created_event(application, event):
    """Additional setup on IWSGIApplicationCreatedEvent.
    """
    # !+ui.app.on_wsgi_application_created_event ALWAYS gets called prior to this
    log.debug("CORE ON_WSGI_APPLICATION_CREATED_EVENT: %s, %s", application,
              event)

    # execute application setup, creating sections, etc.
    app_setup = IBungeniSetup(application)
    app_setup.setUp()

    # additional workflow validation
    for type_key, ti in capi.iter_type_info():
        if ti.workflow:
            ti.workflow.validate_permissions_roles()

    # import events module, registering handlers
    import bungeni.core.workflows.events

    # load workspaces
    load_workspaces()

    # load notifications
    load_notifications()

    # load email notifications
    load_email()

    # !+SERIALIZER(ah, 21-06-2013) This has been moved to a separate app
    # set up serialization notifications
    #serialization_notifications()

    # import events modules, registering handlers
    import bungeni.core.events

    # write configuration parameters to xml
    import bungeni.utils.xmlconfexport as confexp
    confexp.write_all()

    log.info("on_wsgi_application_created_event: _features: %s",
             getConfigContext()._features)

    from bungeni.alchemist.utils import set_vocabulary_factory
    log.info(
        "on_wsgi_application_created_event: Dynamic Vocabularies:\n    %s",
        "\n    ".join(
            sorted([
                "%s%s%s" %
                (v.__name__, probing.saccadic_padding(v.__name__), v)
                for v in set_vocabulary_factory.registered
            ])))
예제 #18
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()
예제 #19
0
def on_wsgi_application_created_event(application, event):
    """Additional setup on IWSGIApplicationCreatedEvent.
    """
    # !+ui.app.on_wsgi_application_created_event ALWAYS gets called prior to this
    log.debug("CORE ON_WSGI_APPLICATION_CREATED_EVENT: %s, %s", application,
              event)

    # additional workflow validation
    for type_key, ti in capi.iter_type_info():
        if ti.workflow:
            ti.workflow.validate_permissions_roles()

    #set up retract transitions in workflows
    setup_retract_transitions()

    # import events module, registering handlers
    import bungeni.core.workflows.events

    # load workspaces
    load_workspaces()

    # load notifications
    load_notifications()

    # load email notifications
    load_email()

    # set up serialization notifications
    serialization_notifications()

    # import events modules, registering handlers
    import bungeni.core.events

    app_setup = model_interfaces.IBungeniSetup(application)
    app_setup.setUp()

    # write configuration parameters to xml
    try:
        import bungeni.utils.xmlconfexport as confexp
        confexp.write_all()
    except:
        log.debug(("on_wsgi_application_created :"
                   "error while exporting config parameters to xml"))

    log.debug("on_wsgi_application_created_event: _features: %s" %
              (getConfigContext()._features))
예제 #20
0
def on_wsgi_application_created_event(application, event):
    """Additional setup on IWSGIApplicationCreatedEvent.
    """
    # !+ui.app.on_wsgi_application_created_event ALWAYS gets called prior to this
    log.debug("CORE ON_WSGI_APPLICATION_CREATED_EVENT: %s, %s", application, event) 
    
    # execute application setup, creating sections, etc.
    app_setup = IBungeniSetup(application)
    app_setup.setUp()
    
    # additional workflow validation
    for type_key, ti in capi.iter_type_info():
        if ti.workflow:
            ti.workflow.validate_permissions_roles()
    
    # import events module, registering handlers
    import bungeni.core.workflows.events
    
    # load workspaces
    load_workspaces()
    
    # load notifications
    load_notifications()
    
    # load email notifications
    load_email()
    
    # !+SERIALIZER(ah, 21-06-2013) This has been moved to a separate app
    # set up serialization notifications
    #serialization_notifications()
    
    # import events modules, registering handlers
    import bungeni.core.events
    
    # write configuration parameters to xml
    import bungeni.utils.xmlconfexport as confexp
    confexp.write_all()
    
    log.info("on_wsgi_application_created_event: _features: %s", 
        getConfigContext()._features)
    
    from bungeni.alchemist.utils import set_vocabulary_factory
    log.info("on_wsgi_application_created_event: Dynamic Vocabularies:\n    %s",
        "\n    ".join(sorted([ "%s%s%s" % (
                        v.__name__, probing.saccadic_padding(v.__name__), v)
                    for v in set_vocabulary_factory.registered ])))
예제 #21
0
def on_wsgi_application_created_event(application, event):
    """Additional setup on IWSGIApplicationCreatedEvent.
    """
    # !+ui.app.on_wsgi_application_created_event ALWAYS gets called prior to this
    log.debug("CORE ON_WSGI_APPLICATION_CREATED_EVENT: %s, %s", application, event) 
    
    # additional workflow validation
    for type_key, ti in capi.iter_type_info():
        if ti.workflow:
            ti.workflow.validate_permissions_roles()
    
    #set up retract transitions in workflows
    setup_retract_transitions()
    
    # import events module, registering handlers
    import bungeni.core.workflows.events
    
    # load workspaces
    load_workspaces()
    
    # load notifications
    load_notifications()

    # load email notifications
    load_email()

    # set up serialization notifications
    serialization_notifications()
    
    # import events modules, registering handlers
    import bungeni.core.events
    
    app_setup = model_interfaces.IBungeniSetup(application)
    app_setup.setUp()
    
    # write configuration parameters to xml
    try:
        import bungeni.utils.xmlconfexport as confexp
        confexp.write_all()
    except:
        log.debug(("on_wsgi_application_created :"
            "error while exporting config parameters to xml"))
    
    log.debug("on_wsgi_application_created_event: _features: %s" % (
        getConfigContext()._features))
예제 #22
0
 def actions(self):
     """
     gives us the action dict of the object
     """
     try:
         objId = getUtility(IIntIds).getId(self.context)
     except:
         objId = 1000
     retList = []
     if appsetup.getConfigContext().hasFeature('devmode') and \
        checkPermission('org.ict_ok.components.host.Edit', self.context):
         quoter = URLQuote(self.request.getURL())
         tmpDict = {}
         tmpDict['oid'] = u"c%strigger_online" % objId
         tmpDict['title'] = _(u"Trigger online")
         tmpDict['href'] = u"%s/@@trigger_online?nextURL=%s" % \
                (zapi.absoluteURL(self.context, self.request),
                 quoter.quote())
         retList.append(tmpDict)
         tmpDict = {}
         tmpDict['oid'] = u"c%strigger_offline" % objId
         tmpDict['title'] = _(u"Trigger offline")
         tmpDict['href'] = u"%s/@@trigger_offline?nextURL=%s" % \
                (zapi.absoluteURL(self.context, self.request),
                 quoter.quote())
         retList.append(tmpDict)
         tmpDict = {}
         tmpDict['oid'] = u"c%strigger_not1" % objId
         tmpDict['title'] = _(u"Trigger notification1")
         tmpDict['href'] = u"%s/@@trigger_not1?nextURL=%s" % \
                (zapi.absoluteURL(self.context, self.request),
                 quoter.quote())
         retList.append(tmpDict)
     adapSize = ISized(self.context)
     if checkPermission('org.ict_ok.components.interface.Add', self.context) and \
        (adapSize.sizeForSorting()[1] < 1):
         tmpDict = {}
         tmpDict['oid'] = u"c%sstart_snmp_if_scanner" % objId
         tmpDict['title'] = _(u"start snmp interface scanner")
         tmpDict['href'] = u"%s/@@start_snmp_if_scanner.html" % \
                zapi.absoluteURL(self.context, self.request)
         tmpDict['tooltip'] = _(u"starts the interface scanner with snmp scan (as user:%s)"\
                                % self.request.principal.title)
         retList.append(tmpDict)
     return retList
예제 #23
0
def main():

    dom = getDOMImplementation()

    namespaces, subdirs = makeDocStructures(getConfigContext())
    common = namespaces.pop('', ())

    for ns, directives in namespaces.items():
        filename = quoteNS(ns) + '.xsd'
        file = open(filename, 'w')
        doc = dom.createDocument(xsns, 'xs:schema', None)
        root = doc.documentElement

        root.setAttribute('xmlns:xs', xsns)
        root.setAttribute('xs:targetNamespace', ns)

        directives.update(common)

        for directive in directives:
            el = doc.createElement('xs:element')
            el.setAttribute('name', directive)

            type = doc.createElement('xs:complexType')

            schema = directives[directive][0]

            if schema.__doc__:
                addDoc(doc, type, schema.__doc__)

            for name, field in getFieldsInOrder(schema):
                if name.endswith('_') and iskeyword(name[:-1]):
                    name = name[:-1]
                attr = doc.createElement('xs:attribute')
                attr.setAttribute('name', name)
                attr.setAttribute('type', 'string')

                if field.__doc__:
                    addDoc(doc, attr, field.__doc__)

                type.appendChild(attr)

            el.appendChild(type)
            root.appendChild(el)

        doc.writexml(file, addindent='\t', newl='\n')
예제 #24
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()
예제 #25
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)
    # 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 "script_oid_index" in instUtilityICatalog.keys():
        script_oid_index = KeywordIndex(interface=ISearchableText,
                                        field_name='getSearchableScriptOid',
                                        field_callable=True)
        instUtilityICatalog['script_oid_index'] = script_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 'script'")

    folderName = u"MobilePhones"
    if folderName not in root_folder.keys():
        #newFolder = TestComponentFolder()
        newFolder = createObject(
            u'org.ict_ok.components.mobilephone.mobilephone.MobilePhoneFolder')
        root_folder[folderName] = newFolder
        dcore = IZopeDublinCore(newFolder, None)
        #dcore.creators = [u'ikportscan']
        #newFolder.ikComment += u"scanner: %s" % (dateNow)
        newFolder.__setattr__("ikName", folderName)
        dcore.title = folderName

    transaction.get().commit()
    connection.close()
예제 #26
0
파일: state.py 프로젝트: mleist/ict-ok.org
 def getStateDict(self):
     """get the object state in form of a dict
     """
     overviewNum = 0  # 0: ok, 1: warn, 2: error
     warnList = []
     errorList = []
     retDict = {}
     if appsetup.getConfigContext().hasFeature('devmode'):
         if overviewNum < 1:
             overviewNum = 1
         mesg = _(u'Warning: ')
         mesg += _(u"in development mode")
         warnList.append(mesg)
     retDict['overview'] = ('ok', 'warn', 'error')[overviewNum]
     retDict['warnings'] = warnList
     retDict['errors'] = errorList
     if overviewNum == 0:
         return None
     return retDict
예제 #27
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)

    # 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()
예제 #28
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()
예제 #29
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, 
#                                       name='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, 
#                                        name='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()
예제 #30
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()