Example #1
0
            row.append(actioncell)
            exporter_table.append(row)
        exporter_section.append(exporter_table)
        add_form = HTMLgen.Form(request_path)
        addinput = HTMLgen.Input(name='add', value='true', type='hidden')
        add_form.append(addinput)
        section = HTMLgen.Input(name='section', type='hidden', value="main")
        add_form.append(section)
        add_form = adorn(add_form, targetType="dialog")
        add_form.submit.value = 'add'
        exporter_section.append(add_form)
        document.append(exporter_section)
        return str(document)


register_adapter(HTMLExporterContainer)


class HTMLAlarmExporter(object):
    implements(IWebContent)
    adapts(IAlarmExporter)

    def __init__(self, exporter):
        self.exporter = exporter
        self.base_doc = HTMLgen.SimpleDocument(title='Alarm Exporter')

    def render(self):
        """
            Configuration should be broken into three main topics.
            Edit, associated with an 'edit' button on the manager 
            page, exposes name and other standard node configuration 
Example #2
0
        content.append(popup)

    def get_row_actions(self, child):
        actions = []
        if child.is_configurable():
            actions.append('edit')
            actions.append('permissions')
        if child.is_removable():
            actions.append('remove')
        return actions

    def get_allowed_additions(self):
        return ['Policy']


register_adapter(HTMLPolicyManagerForm, [IPolicyManager])


class IdentifiedInput(HTMLgen.Input):
    def __init__(self, *args, **kw):
        self.id = kw.get('id', '')
        if kw.has_key('id'):
            del (kw['id'])
        HTMLgen.Input.__init__(self, *args, **kw)

    def __str__(self):
        output = HTMLgen.Input.__str__(self)
        fragments = output.split(' ')
        if self.id:
            fragments.insert(1, 'ID="%s"' % self.id)
        return string.join(fragments, ' ')
Example #3
0
class HTMLRoleManagerForm(HTMLSimpleManagerForm):
    adapts(IRoleManager)

    def add_child_form(self, content):
        popup = HTMLgen.Form("#")
        popup.submit.value = "+"
        popup.submit.name = "Add Role"
        popup.submit.onClick = "return popup_form(this, '%s', true)" % addform
        content.append(popup)

    def get_allowed_additions(self):
        return ['Role']


register_adapter(HTMLRoleManagerForm, [IRoleManager])


class HTMLRoleForm(object):
    implements(IWebContent)
    adapts(IRole)

    def __init__(self, role):
        self.role = role
        self.base_doc = HTMLgen.SimpleDocument(title='Role Editor')

    def render(self, request_path):
        attrs = KeyWordAssist()
        document = self.base_doc.copy()
        encoded = cgi.escape(self.role.parent.name)
        manager = HTMLgen.Input(name='manager', type='hidden', value=encoded)
Example #4
0
        return uuid

    get_identifier = staticmethod(get_identifier)

    def get_identified(uuid, default=None):
        return identifier_registry.get(uuid, default)

    get_identified = staticmethod(get_identified)

    def __new__(klass, context):
        adapter = super(UniquelyIdentified, klass).__new__(klass)
        meta_context = IMetaDataProvider(context)
        uuid = meta_context.setdefault_meta('identifier', UUID())
        identifier_registry.setdefault(uuid, context)
        adapter.initialize(meta_context)
        return adapter

    def initialize(self, context):
        self.context = context

    def __get_id(self):
        return self.context['identifier']

    def __set_id(self, id):
        self.context['identifier'] = id

    identifier = property(__get_id, __set_id)


register_adapter(UniquelyIdentified)
Example #5
0
        super(RSS2AlarmEventItem, self).__init__()
    def as_item(self):
        event = self.alarmevent
        item = rss.Item()
        alarm = event.source
        priority = alarm.priority
        if not priority: 
            priority = 'Normal'
        title = "%s (%s): %s" % (alarm.name, priority, event.state.upper())
        link = "http://%s/syndication?guid=%s" % (event.origin, event.GUID)
        item.title = rss.Title(title)
        item.link = rss.Link(link)
        item.guid = rss.Guid(event.GUID)
        item.pub_date = rss.PubDate(event.created())
        description = alarm.description
        for change in event.get_audit():
            description += '<br />\n%s.  ' % change.tostring()
        item.description = rss.Description(tools.escape_html(description))
        item.source = rss.Source(event.origin, 
                                 "http://%s/syndication" % event.origin)
        eventcategory = rss.Category('Event')
        alarmcategory = rss.Category('Alarm')
        item.categories.append(eventcategory)
        item.categories.append(alarmcategory)
        return item
    def render(self):
        return str(self.as_item())

register_adapter(RSS2AlarmManager)
register_adapter(RSS2AlarmEventItem)
Example #6
0
        state['sources'] = {}
        for source in sources:
            state['sources'][source.url] = self.exporter.get_event_names(
                source)
        return state

    def __setstate__(self, state):
        self.exporter = None
        self.state = state

    def __call__(self):
        if self.exporter is None:
            try:
                self.exporter = as_node(self.state['url'])
            except KeyError:
                self.exporter = self.state.get('class')()
            config = self.state['config']
            parent = as_node(config['parent'])
            config.setdefault('nodespace', parent.nodespace)
            self.exporter.configure(config)
            self.exporter.start()
        for source, args in self.state.get('sources', {}).items():
            try:
                self.exporter.add_source(source, *args)
            except:
                msglog.exception()
        return self.exporter


register_adapter(ExporterPickler)
Example #7
0
                    field = abnormal.get(aname)
                else:
                    field = HTMLgen.Input(name=qname, value=qvalue)
                row = HTMLgen.TR(**attrs('class', classes.next()))
                row.append(
                    HTMLgen.TH(qname, **attrs("class", "attribute-name")))
                row.append(
                    HTMLgen.TD(field, **attrs("class", "attribute-value")))
                table.append(row)
        form.append(table)
        form.submit.value = form.submit.name = "save"
        cancel = HTMLgen.Input(type="reset", value="cancel", name="cancel")
        form.append(cancel)
        # CSCte94385 (fix disabled for now) - validate invalid chars
        dialogId = "edit"
        #strScript = ("function " + dialogId + "_validate() { if(document.getElementById('" + dialogId + "').name.value.match('[^a-zA-Z0-9_]')) { " +
        #                 "alert('Error: Name should have only alphanumeric and _ charaters.');" +
        #                 "return false;}" +
        #                 "return true;}")
        #script = HTMLgen.Script(language="JavaScript", code=strScript)
        #form.append(script)
        form = adorn(form, id=dialogId)
        form = adorn(
            form, onsubmit="return false"
        )  #This will disable form submission when enter key is pressed (CSCtg05439)
        return str(form)


register_adapter(HTMLAlarmManager)
register_adapter(HTMLAlarm)
Example #8
0
        popup.submit.onClick = "return popup_form(this, '%s', true)" % addform
        content.append(popup)
        
    def get_row_actions(self, child):
        actions = []
        if child.is_configurable():
            actions.append('edit')
            actions.append('permissions')
        if child.is_removable():
            actions.append('remove')
        return actions
    
    def get_allowed_additions(self):
        return ['Policy']

register_adapter(HTMLPolicyManagerForm, [IPolicyManager])

class IdentifiedInput(HTMLgen.Input):
    def __init__(self, *args, **kw):
        self.id = kw.get('id', '')
        if kw.has_key('id'):
            del(kw['id'])
        HTMLgen.Input.__init__(self, *args, **kw)

    def __str__(self):
        output = HTMLgen.Input.__str__(self)
        fragments = output.split(' ')
        if self.id:
            fragments.insert(1, 'ID="%s"' % self.id)
        return string.join(fragments, ' ')
Example #9
0
        targets = trigger.get_targets(True)
        for target in targets:
            if not isinstance(target, str):
                target = target.url
            state['targets'].append(target)
        state['running'] = trigger.is_running()
        return state

    def __setstate__(self, state):
        self.trigger = None
        self.state = state

    def __call__(self):
        if self.trigger is None:
            try:
                self.trigger = as_node(self.state['url'])
            except KeyError:
                self.trigger = self.state.get('class')()
            config = self.state['config']
            parent = as_node(config['parent'])
            config.setdefault('nodespace', parent.nodespace)
            self.trigger.configure(config)
            if self.state['running']:
                self.trigger.start()
        for target in self.state.get('targets', []):
            self.trigger.add_target(target)
        return self.trigger


register_adapter(TriggerPickler)
Example #10
0
from mpx.service.alarms2.interfaces import IActionEvent
from mpx.service.alarms2.interfaces import IFlatAlarmManager
from mpx.componentry.security.interfaces import ISecurityContext

class AlarmEventSecurityContext(object):
    implements(ISecurityContext)
    adapts(IAlarmEvent)
    def __init__(self, event):
        self.event = event
    def get_context(self):
        return self.event.source
    def get_context_url(self):
        return self.get_context().url
    url = property(get_context_url)

register_adapter(AlarmEventSecurityContext)

class ActionEventPickler(object):
    implements(IPickles)
    adapts(IActionEvent)
    def __init__(self, action):
        self.action = action
        self.state = None
    def __getstate__(self):
        if self.action is None:
            return self.state
        action = self.action
        if not hasattr(action, '__picklestate'):
            state = {'class': type(action),
                     'GUID': action.GUID,
                     'source': EventSource(action.source)}
Example #11
0
</form>
"""
addform = urllib.quote(addform)

class HTMLRoleManagerForm(HTMLSimpleManagerForm):
    adapts(IRoleManager)
    def add_child_form(self,content):
        popup = HTMLgen.Form("#")
        popup.submit.value = "+"
        popup.submit.name = "Add Role"
        popup.submit.onClick = "return popup_form(this, '%s', true)" % addform
        content.append(popup)
    def get_allowed_additions(self):
        return ['Role']

register_adapter(HTMLRoleManagerForm, [IRoleManager])

class HTMLRoleForm(object):
    implements(IWebContent)
    adapts(IRole)

    def __init__(self, role):
        self.role = role
        self.base_doc = HTMLgen.SimpleDocument(title='Role Editor')

    def render(self, request_path):
        attrs = KeyWordAssist()
        document = self.base_doc.copy()
        encoded = cgi.escape(self.role.parent.name)
        manager = HTMLgen.Input(name='manager', type='hidden', value=encoded)
        encoded = cgi.escape(self.role.name)
Example #12
0
work to be covered by the GNU General Public License. However         
the source code for this file must still be made available in         
accordance with section (3) of the GNU General Public License.         
    
This exception does not invalidate any other reasons why a work         
based on this file might be covered by the GNU General Public         
License.
"""
from mpx.componentry import Interface
from mpx.componentry import implements
from mpx.componentry import adapts
from mpx.componentry import register_adapter
from interfaces import IPickles


class PickleAdapter(object):
    implements(IPickles)
    adapts(Interface)

    def __init__(self, context):
        self.context = context

    def __getinitargs__(self):
        return self.context

    def __call__(self):
        return self.context


register_adapter(PickleAdapter)
Example #13
0
class PickleableOGConfigurableNode(PickleableConfigurableNode):
    adapts(IOGConfigurableNode)
    privatevars = ['name', 'parent']
    excludevars = ['name', 'parent']


class PickleableCompositeNode(PickleableConfigurableNode):
    adapts(ICompositeNode)
    privatevars = PickleableConfigurableNode.privatevars[:]
    privatevars += ['_CompositeNode__children', '_CompositeNode__nameorder']


class PickleableOGCompositeNode(PickleableOGConfigurableNode):
    adapts(IOGCompositeNode)
    privatevars = PickleableOGConfigurableNode.privatevars[:]
    privatevars += ['_children']

    def __init__(self, context):
        super(PickleableOGCompositeNode, self).__init__(context)
        context._children = getattr(context, '_children', {})


register_adapter(Pickleable)
register_adapter(PersistentAdapter)
register_adapter(PickleableConfigurableNode, IConfigurableNode, IPickleable)
register_adapter(PickleableOGConfigurableNode, IOGConfigurableNode,
                 IPickleable)
register_adapter(PickleableCompositeNode, ICompositeNode, IPickleable)
register_adapter(PickleableOGCompositeNode, IOGCompositeNode, IPickleable)
register_adapter(PickleableAlarm, IAlarm, IPickleable)
Example #14
0
class NoI(object):
    def say(self, something):
        print 'NoIB: ' + something


class AdaptsNone(object):
    implements(IC)
    adapts(None)
    def __init__(self, context):
        self.context = context
    def show(self, name = 'shane'):
        self.context.say(name)


register_adapter(AdaptsNone)
noi = NoI()
adaptednoi = IC(noi)
assert type(adaptednoi) is AdaptsNone, 'Got wrong Adapter!'



class Adapts(object):
    implements(IA)
    adapts(INoA)
    def __init__(self, context):
        self.context = context
    def show(self, name = 'shane'):
        self.context.say(name)

class AdaptsSubclass(Adapts):
Example #15
0
    """
    implements(IMessageListener)
    adapts(IMessageChannel)

    def __init__(self, channel):
        self.channel = channel
        super(ChannelAdapter, self).__init__()

    def handle_message(self, message):
        self.channel.send(message)

    def __eq__(self, other):
        return self.channel == other.channel


register_adapter(ChannelAdapter)


class ListenerAdapter(object):
    implements(IMessageChannel)
    adapts(IMessageListener)

    def __init__(self, listener):
        self.listener = listener
        super(ListenerAdapter, self).__init__()

    def send(self, message):
        self.listener.handle_message(message)

    def __eq__(self, other):
        return self.listener == other.listener
Example #16
0
class IOGRemoteNodeSecurityAdapter(object):
    implements(ISecure)
    adapts(IOGRemoteNode, IUser)
    def __init__(self, facade, user):
        directly_provides(self, *tuple(provided_by(facade)))
        self.__dict__['facade'] = facade
        self.__dict__['user'] = user
    def __getattr__(self, name):
        return getattr(self.facade, name)
    def __setattr__(self, name, value):
        if name == '__provides__':
            return super(
                IOGRemoteNodeSecurityAdapter, self).__setattr__(name, value)
        return setattr(self.facade, name, value)

register_adapter(IOGRemoteNodeSecurityAdapter)

class OGConfigurableNeodeAdapter(object):
    implements(IConfigurableNode)
    adapts(IOGConfigurableNode)
    nodespace = None
    def __init__(self, node):
        directly_provides(self, *tuple(provided_by(node)))
        self.__dict__['node'] = node
    
    def get_nodespace(self):
        return OGConfigurableNeodeAdapter.nodespace
    
    def get_url(self):
        return as_node_url(self.node)
    url = property(get_url)
Example #17
0
        crawler = Iterator(xmlroot)
        nodecount = 0
        while crawler.has_more():
            xmlnode = crawler.get_next_node()
            config = xmlnode.get_config()
            print 'Loading node %d: %s' % (nodecount, config)
            node = load_node(config)
            node.configure(config)
            nodecount += 1
        return nodecount

    def dump(self, datastream, levels=None):
        return datastream.write(self.dumps(levels))


register_adapter(BroadwayConfigurableGenerator)


class BroadwayCompositeGenerator(BroadwayConfigurableGenerator):
    implements(IBroadways)
    adapts(ICompositeNode)

    def dumps(self, levels=None):
        xmllines = super(BroadwayCompositeGenerator, self)._xml_lines(levels)
        nodeclose = xmllines.pop()
        if levels is not None:
            levels -= 1
        childdumps = []
        if levels != 0:
            children = self.node.children_nodes()
            generators = map(IBroadways, children)
Example #18
0
        return False

    def appendChild(self, newChild):
        raise Exception("Invalid operation on ConfigurableNode.")

    def insertBefore(self, newChild, refChild):
        raise Exception("Invalid operation on ConfigurableNode.")

    def removeChild(self, oldChild):
        raise Exception("Invalid operation on ConfigurableNode.")

    def replaceChild(self, newChild, oldChild):
        raise Exception("Invalid operation on ConfigurableNode.")


register_adapter(DomConfigurableNode)


class DomCompositeNode(DomConfigurableNode):
    __doc__ = IDomNode.__doc__

    # implements(IDomNode)
    adapts(ICompositeNode)

    # See mpx.www.w3c.dom.interfaces.IDomNode
    def __get_child_nodes(self):
        children = self.node.children_nodes()
        return map(IDomNode, children)

    childNodes = property(__get_child_nodes)
Example #19
0
            )
        confirm_form.submit.append(
            CustomInput(type='submit', name='cancelupdate', value='Cancel')
            )
        return confirm_form
    def render(self):
        document = HTMLgen.SimpleDocument(
            title="Confirm",
            stylesheet='/omega/trendmanager/styles.css',
            )
        # Hack-around to set the class on the BODY for HTMLGen
        document.append(
            HTMLgen.Script(code="""
              document.body.className = 'manager';
              """),
            )
        document.append(
            HTMLgen.Heading(2, "Trend Confirm Changes",
                                           id="editorlabel")
            )
        section = HTMLgen.Div(**{'class':'section'})
        self.confirm_form = self.create_confirm_form()
        self.hidden_point_div = self.create_hidden_point_div()
        self.confirm_form.append(self.hidden_point_div)
        self.point_confirmation_div = self.create_point_confirmation()
        self.confirm_form.append(self.point_confirmation_div)
        section.append(self.confirm_form)
        document.append(section)
        return str(document)
register_adapter(HTMLConfirmUpdateTrend)
Example #20
0
from mpx.lib.messaging.channel.interfaces import IMessageChannel
from mpx.lib.messaging.channel.interfaces import IMessageListener

class ChannelAdapter(object):
    """
        Wrap Channel instance with message listener interface.
    """
    implements(IMessageListener)
    adapts(IMessageChannel)
    def __init__(self, channel):
        self.channel = channel
        super(ChannelAdapter, self).__init__()
    def handle_message(self, message):
        self.channel.send(message)
    def __eq__(self, other):
        return self.channel == other.channel

register_adapter(ChannelAdapter)

class ListenerAdapter(object):
    implements(IMessageChannel)
    adapts(IMessageListener)
    def __init__(self, listener):
        self.listener = listener
        super(ListenerAdapter, self).__init__()
    def send(self, message):
        self.listener.handle_message(message)
    def __eq__(self, other):
        return self.listener == other.listener

register_adapter(ListenerAdapter)
Example #21
0
            add_form = adorn(add_form,
                             targetHandling="content",
                             targetID="schedule-configuration")
            addform = urllib.quote(str(add_form))
            popup = HTMLgen.Form(request_path)
            popup.submit.value = "+"
            onclick = "return popup_form(this, '%s', true)"
            popup.submit.onClick = onclick % addform
            children_section.append(adorn(popup, ("class", "add")))
        children_section.append(
            navigation(request_path, "reload", self.parent.url))
        document.append(children_section)
        return str(document)


register_adapter(HTMLScheduleHolderParentForm)


class HTMLScheduleHolderForm(object):
    implements(IWebContent)
    adapts(IScheduleHolder)

    def __init__(self, holder):
        self.path = None
        self.holder = holder

    def get_request_path(self):
        return self.path

    def get_page_heading(self):
        return self.holder.name
Example #22
0
            row.append(actioncell)
            trigger_table.append(row)
        trigger_section.append(trigger_table)
        add_form = HTMLgen.Form(request_path)
        addinput = HTMLgen.Input(name='add', value='true', type='hidden')
        add_form.append(addinput)
        section = HTMLgen.Input(
            name='section', type='hidden', value="main")
        add_form.append(section)
        add_form = adorn(add_form, targetType="dialog")
        add_form.submit.value = 'add'
        trigger_section.append(add_form)
        document.append(trigger_section)
        return str(document)

register_adapter(HTMLTriggerManager)


class HTMLTrigger(object):
    implements(IWebContent)
    adapts(ITrigger)

    def __init__(self, trigger):
        self.trigger = trigger
        self.base_doc = HTMLgen.SimpleDocument(
            title='Trigger', stylesheet='/omega/eventmanager/styles.css')

    def render(self):
        attrs = KeyWordAssist()
        document = self.base_doc.copy()
        page_heading = HTMLgen.Heading(
Example #23
0
    def __call__(self):
        if self.node is None:
            try:
                self.node = _node.rootspace.as_node(self.state['url'])
            except KeyError: self.node = self.state.get('class')()
            else:
                try: self.node.stop()
                except: pass
            config = self.state['config']
            parent = _node.rootspace.as_node(config['parent'])
            config.setdefault('nodespace', parent.nodespace)
            self.node.configure(config)
            self.node.start()
        return self.node

register_adapter(ConfigurableNodePickler)


class ExtendedInspectableAdapter(object):
    implements(IExtendedInspectable)
    adapts(IInspectable)

    def __init__(self, inspectable):
        self.context = inspectable

    def getattr(self, name):
        return self.context.getattr(name)

    def hasattr(self, name):
        return self.context.has_attr(name)
Example #24
0
            else:
                if abnormal.has_key(aname):
                    field = abnormal.get(aname)
                else:
                    field = HTMLgen.Input(name=qname, value=qvalue)
                row = HTMLgen.TR(**attrs('class', classes.next()))
                row.append(
                    HTMLgen.TH(qname, **attrs("class", "attribute-name")))
                row.append(
                    HTMLgen.TD(field, **attrs("class", "attribute-value")))
                table.append(row)
        form.append(table)
        form.submit.value = form.submit.name = "save"
        cancel = HTMLgen.Input(type="reset", value="cancel", name="cancel")
        form.append(cancel)
        # CSCte94385 (fix disabled for now) - validate invalid chars
        dialogId = "edit"
        #strScript = ("function " + dialogId + "_validate() { if(document.getElementById('" + dialogId + "').name.value.match('[^a-zA-Z0-9_]')) { " +
        #                 "alert('Error: Name should have only alphanumeric and _ charaters.');" +
        #                 "return false;}" +
        #                 "return true;}")
        #script = HTMLgen.Script(language="JavaScript", code=strScript)
        #form.append(script)
        form = adorn(form, id=dialogId)
        form = adorn(form, onsubmit = "return false") #This will disable form submission when enter key is pressed (CSCtg05439)
        return str(form)


register_adapter(HTMLAlarmManager)
register_adapter(HTMLAlarm)
Example #25
0
    def create_embedded_graph(self):
        self.graph_element = HTMLgen.Script()
        preferences = self.trend.get_preferences()
        window_width = 800
        window_height = 600
        try:
            window_width = int(float(preferences['width']))
        except:
            pass
        try:
            window_height = int(float(preferences['height']))
        except:
            pass
        self.graph_element.append("""
        var so = new SWFObject("/graphtool/EmbeddedGraph.swf", "trend_swf",
                               %(width)s, %(height)s, 8);
        so.addParam("wmode", "opaque");
        """ % {
            "width": window_width,
            "height": window_height
        })
        self.add_variable("CFG.log_uri", self.trend.log_url)
        self.write_preferences(preferences)
        self.graph_element.append("""so.write("trend_div");
        """)
        return


register_adapter(HTMLTrend)
Example #26
0
    def __init__(self, facade, user):
        directly_provides(self, *tuple(provided_by(facade)))
        self.__dict__['facade'] = facade
        self.__dict__['user'] = user

    def __getattr__(self, name):
        return getattr(self.facade, name)

    def __setattr__(self, name, value):
        if name == '__provides__':
            return super(IOGRemoteNodeSecurityAdapter,
                         self).__setattr__(name, value)
        return setattr(self.facade, name, value)


register_adapter(IOGRemoteNodeSecurityAdapter)


class OGConfigurableNeodeAdapter(object):
    implements(IConfigurableNode)
    adapts(IOGConfigurableNode)
    nodespace = None

    def __init__(self, node):
        directly_provides(self, *tuple(provided_by(node)))
        self.__dict__['node'] = node

    def get_nodespace(self):
        return OGConfigurableNeodeAdapter.nodespace

    def get_url(self):
Example #27
0
    def add_meta(self, predicate, value):
        meta = self.__meta.setdefault(predicate, value)
        if meta is not value:
            raise TypeError('Context already has meta-data with predicate')
        return meta

    def update_meta(self, predicate, value):
        self.__meta.update({predicate: value})

    def setdefault_meta(self, predicate, default):
        return self.__meta.setdefault(predicate, default)

    def get_predicates(self):
        return self.__meta.keys()

    def get_values(self):
        return self.__meta.values()

    def get_items(self):
        return self.__meta.items()

    def get_triples(self):
        predicates, values = self.__meta.keys(), self.__meta.values()
        return zip([self.context] * len(predicates), predicates, values)

    def get_meta_dictionary(self):
        return self.__meta.copy()

register_adapter(MetaDataProvider)
Example #28
0
            add_form.submit.value = "continue"      
            add_form = adorn(add_form, 
                             targetHandling="content",  
                             targetID="schedule-configuration")      
            addform = urllib.quote(str(add_form))
            popup = HTMLgen.Form(request_path)
            popup.submit.value = "+"
            onclick = "return popup_form(this, '%s', true)"
            popup.submit.onClick = onclick % addform
            children_section.append(adorn(popup, ("class", "add")))
        children_section.append(
            navigation(request_path, "reload", self.parent.url))
        document.append(children_section)
        return str(document)

register_adapter(HTMLScheduleHolderParentForm)

class HTMLScheduleHolderForm(object):
    implements(IWebContent)
    adapts(IScheduleHolder)

    def __init__(self, holder):
        self.path = None
        self.holder = holder
    def get_request_path(self):
        return self.path
    def get_page_heading(self):
        return self.holder.name
    def get_page_title(self):
        return self.holder.name
    def get_column_names(self):
Example #29
0
        return False

    def appendChild(self, newChild):
        raise Exception('Invalid operation on ConfigurableNode.')

    def insertBefore(self, newChild, refChild):
        raise Exception('Invalid operation on ConfigurableNode.')

    def removeChild(self, oldChild):
        raise Exception('Invalid operation on ConfigurableNode.')

    def replaceChild(self, newChild, oldChild):
        raise Exception('Invalid operation on ConfigurableNode.')


register_adapter(DomConfigurableNode)


class DomCompositeNode(DomConfigurableNode):
    __doc__ = IDomNode.__doc__

    # implements(IDomNode)
    adapts(ICompositeNode)

    # See mpx.www.w3c.dom.interfaces.IDomNode
    def __get_child_nodes(self):
        children = self.node.children_nodes()
        return map(IDomNode, children)

    childNodes = property(__get_child_nodes)
Example #30
0
            row.append(actioncell)
            exporter_table.append(row)
        exporter_section.append(exporter_table)
        add_form = HTMLgen.Form(request_path)
        addinput = HTMLgen.Input(name='add', value='true', type='hidden')
        add_form.append(addinput)
        section = HTMLgen.Input(
            name='section', type='hidden', value="main")
        add_form.append(section)
        add_form = adorn(add_form, targetType="dialog")
        add_form.submit.value = 'add'
        exporter_section.append(add_form)
        document.append(exporter_section)
        return str(document)

register_adapter(HTMLExporterContainer)


class HTMLAlarmExporter(object):
    implements(IWebContent)
    adapts(IAlarmExporter)

    def __init__(self, exporter):
        self.exporter = exporter
        self.base_doc = HTMLgen.SimpleDocument(title='Alarm Exporter')

    def render(self):
        """
            Configuration should be broken into three main topics.
            Edit, associated with an 'edit' button on the manager 
            page, exposes name and other standard node configuration 
Example #31
0
    def add_meta(self, predicate, value):
        meta = self.__meta.setdefault(predicate, value)
        if meta is not value:
            raise TypeError('Context already has meta-data with predicate')
        return meta

    def update_meta(self, predicate, value):
        self.__meta.update({predicate: value})

    def setdefault_meta(self, predicate, default):
        return self.__meta.setdefault(predicate, default)

    def get_predicates(self):
        return self.__meta.keys()

    def get_values(self):
        return self.__meta.values()

    def get_items(self):
        return self.__meta.items()

    def get_triples(self):
        predicates, values = self.__meta.keys(), self.__meta.values()
        return zip([self.context] * len(predicates), predicates, values)

    def get_meta_dictionary(self):
        return self.__meta.copy()


register_adapter(MetaDataProvider)
Example #32
0
                     'url': trigger.url,
                     'config': trigger.configuration()}
            trigger.__picklestate = state
        state = trigger.__picklestate
        state['targets'] = []
        targets = trigger.get_targets(True)
        for target in targets:
            if not isinstance(target, str):
                target = target.url
            state['targets'].append(target)
        state['running'] = trigger.is_running()
        return state
    def __setstate__(self, state):
        self.trigger = None
        self.state = state
    def __call__(self):
        if self.trigger is None:
            try: self.trigger = as_node(self.state['url'])
            except KeyError: self.trigger = self.state.get('class')()
            config = self.state['config']
            parent = as_node(config['parent'])
            config.setdefault('nodespace', parent.nodespace)
            self.trigger.configure(config)
            if self.state['running']:
                self.trigger.start()
        for target in self.state.get('targets', []):
            self.trigger.add_target(target)
        return self.trigger

register_adapter(TriggerPickler)
Example #33
0
        if not self.__cov_registered:
            self.__last_result = None
            return
        last_result = self.__last_result
        if result is None:
            result = self.get_result()
        self.__last_result = result
        if not result.equals(last_result):
            self.__dispatch_cov(last_result, result)
            return

    def __dispatch_cov(self, last_result, result):
        cov = ChangeOfValueEvent(self, last_result, result, result.timestamp)
        return self.__dispatcher.dispatch(cov)

    def __getattr__(self, name):
        if name == 'event_handler' and self.__cov_registered:
            return self.__event_handler
        return getattr(self.node, name)

    def __eq__(self, other):
        return self.url == other.url

    def __get_url(self):
        return self.__urlbase + self.node.url

    url = property(__get_url)


register_adapter(OverridablePoint)
Example #34
0
            except KeyError:
                self.node = self.state.get('class')()
            else:
                try:
                    self.node.stop()
                except:
                    pass
            config = self.state['config']
            parent = _node.rootspace.as_node(config['parent'])
            config.setdefault('nodespace', parent.nodespace)
            self.node.configure(config)
            self.node.start()
        return self.node


register_adapter(ConfigurableNodePickler)


class ExtendedInspectableAdapter(object):
    implements(IExtendedInspectable)
    adapts(IInspectable)

    def __init__(self, inspectable):
        self.context = inspectable

    def getattr(self, name):
        return self.context.getattr(name)

    def hasattr(self, name):
        return self.context.has_attr(name)
Example #35
0
            except:
                msglog.exception()
                msg = ("Failed create row for: %s" %
                       display_name)
                msglog.log('trendmanager', msglog.types.ERR, msg)    
        # Add + to the last actioncell (maybe the actionheader if no trends)
        actionform = CustomForm(request_path)        
        actionform.submit.value = ' + '
        actionform.submit.name = 'Add Trend'
        trend_name = self.manager.generate_trend_name()        
        add_form = (addform) % (trend_name)
        add_form = urllib.quote(add_form)
        actionform.submit.onClick = "return popup_form(this, '%s', true); return false;" % add_form
        trend_section.append(actionform)
        return str(trend_section)
register_adapter(HTMLTrendManager)

class HTMLTrendPointConfiguration(object):
    implements(IWebContent)
    adapts(ITrendPointConfiguration)
    def __init__(self, tpf):
        self.tpf = tpf
        self.trend = tpf.trend
        self.encoded_name = urllib.quote_plus(self.trend.name)
        self.globalsettingscontainer = None
        self.trend_configuration = None
        return
    def add_global_settings(self):
        if 'period' not in self.trend_configuration.keys():
            # This is coming from /services/logger node - no point
            # configuration from UI
Example #36
0
                if len(ugh) == 3:
                    return ugh[1]
        return None
    def setAttribute(self, name, value):
        if hasattr(self.tag,name):
            return setattr(self.tag,name,value)
        elif hasattr(self.tag,'attr_dict'):
            self.tag.attr_dict[name] = ' %s="%s"' % (name, value)
        return None
    def getTagById(self, id):
        my_id = self.getAttribute('id')
        if my_id == id:
            return self.tag
        return None

register_adapter(LeafNodeDOM)

class ContentContainterDOM(LeafNodeDOM):
    implements(IDOMish)
    adapts(IContentContainter)
    def getTagById(self, id):
        result = super(ContentContainterDOM,self).getTagById(id)
        if result is None:
            for tag in self.tag.contents:
                result = domish(tag).getTagById(id)
                if result is not None:
                    return result
        return result

register_adapter(ContentContainterDOM)
Example #37
0
    def get_row_actions(self, child):
        actions = []
        if not hasattr(child, 'is_configurable') or child.is_configurable():
            actions.append('edit')
        actions.append("roles")
        if not hasattr(child, 'is_removable') or child.is_removable():
            actions.append('remove')
        return actions

    def get_allowed_additions(self):
        """Special handling of User addition appended to form by render."""
        return []


register_adapter(HTMLUserManagerForm, [IUserManager])


class IdentifiedInput(HTMLgen.Input):
    def __init__(self, *args, **kw):
        self.id = kw.get('id', '')
        if kw.has_key('id'):
            del (kw['id'])
        HTMLgen.Input.__init__(self, *args, **kw)

    def __str__(self):
        output = HTMLgen.Input.__str__(self)
        fragments = output.split(' ')
        if self.id:
            fragments.insert(1, 'ID="%s"' % self.id)
        return string.join(fragments, ' ')
Example #38
0
        xmlroot.parent = self.node.url
        crawler = Iterator(xmlroot)
        nodecount = 0
        while crawler.has_more():
            xmlnode = crawler.get_next_node()
            config = xmlnode.get_config()
            print 'Loading node %d: %s' % (nodecount, config)
            node = load_node(config)
            node.configure(config)
            nodecount += 1
        return nodecount
    
    def dump(self, datastream, levels = None):
        return datastream.write(self.dumps(levels))

register_adapter(BroadwayConfigurableGenerator)

class BroadwayCompositeGenerator(BroadwayConfigurableGenerator):
    implements(IBroadways)
    adapts(ICompositeNode)
    
    def dumps(self, levels = None):
        xmllines = super(BroadwayCompositeGenerator, self)._xml_lines(levels)
        nodeclose = xmllines.pop()
        if levels is not None:
            levels -= 1
        childdumps = []
        if levels != 0:
            children = self.node.children_nodes()
            generators = map(IBroadways, children)
            childdumps = [generator.dumps(levels) for generator in generators]
Example #39
0
        uuid = MetaDataProvider.get_subject_meta(obj, 'identifier', default)
        if uuid is None and create:
            uuid = UniquelyIdentified(obj).identifier
        return uuid
    get_identifier = staticmethod(get_identifier)

    def get_identified(uuid, default = None):
        return identifier_registry.get(uuid, default)
    get_identified = staticmethod(get_identified)

    def __new__(klass, context):
        adapter = super(UniquelyIdentified, klass).__new__(klass)
        meta_context = IMetaDataProvider(context)
        uuid = meta_context.setdefault_meta('identifier', UUID())
        identifier_registry.setdefault(uuid, context)
        adapter.initialize(meta_context)
        return adapter

    def initialize(self, context):
        self.context = context

    def __get_id(self):
        return self.context['identifier']

    def __set_id(self, id):
        self.context['identifier'] = id

    identifier = property(__get_id, __set_id)

register_adapter(UniquelyIdentified)
Example #40
0
    def get_method(self, name, default=Undefined):
        if not self.has_method(name) and self.hasattr(name):
            # TypeError if attribute exists but is not callable.
            message = "'%s' object attribute '%s' not callable"
            raise TypeError(message % (self._typename(), name))
        return self.getattr(name, default)

    def provides_interface(self, interface):
        if isinstance(interface, str):
            try:
                eval(interface)
            except NameError:
                module, sep, datatype = interface.rpartition(".")
                if not module:
                    raise
                exect("import " + module)
            interface = eval(interface)
        return interface.providedBy(self.subject)

    def get_interfaces(self, named=False):
        interfaces = list(provided_by(self.subject))
        if named:
            items = []
            for interface in interfaces:
                items.append((interface.__module__, interface.__name__))
                interfaces = [".".join(item) for item in items]
        return interfaces


register_adapter(Inspector)
Example #41
0
                actionform.append(actioninput)
                if action == "remove":
                    actionform.name = "Remove Host"
                    actionform = adorn(actionform,
                                       targetID="cloud-config",
                                       id=formId)
                actionform.submit.value = ' - '
                actionform.submit.onClick = ("return confirmDialog('" +
                                             formId + "', 'Remove"
                                             " peer from cloud?', false);")
                actioncell.append(actionform)
                if len(actions) > 1 and action != actions[-1]:
                    actioncell.append(' ')
            row.append(actioncell)
            formation_table.append(row)
        formation_section.append(formation_table)

        add_form = HTMLgen.Form(request_path)
        #addinput = HTMLgen.Input(name='add', value='', type='text')
        #add_form.append(addinput)
        #add_form = adorn(add_form, targetID="cloud-config")
        add_form.submit.value = ' + '
        add_form.submit.name = "Add Host"
        add_form.submit.onClick = "return popup_form(this, '%s', true)" % addform
        formation_section.append(add_form)
        document.append(formation_section)
        return str(document)


register_adapter(HTMLCloudManager)
Example #42
0
        self.faultevent = faultevent

    def as_item(self):
        event = self.faultevent
        item = rss.Item()
        title = event.title
        faulttype = event.faulttype
        #item.title = rss.Title('%s: %s' % (title, faulttype))
        item.title = rss.Title('%s (%s): %s' %
                               (title, 'P1', event.state.upper()))
        item.link = rss.Link('http://%s/syndication?guid=%s' %
                             (event.origin, event.GUID))
        item.pub_date = rss.PubDate(event.timestamp)
        description = event.description
        event_history = event.history + [event.current_event]
        for change in event_history:
            description += '<br />\n%s.  ' % change.detail
        item.description = rss.Description(tools.escape_html(description))
        item.guid = rss.Guid(event.GUID)
        item.source = rss.Source(event.LOCALORIGIN,
                                 'http://%s/syndication' % event.LOCALORIGIN)
        for category in event.types:
            item.categories.append(rss.Category(category))
        return item

    def render(self):
        return str(self.as_item())


register_adapter(RSS2FaultEventItem)
Example #43
0
        if not hasattr(exporter, '__picklestate'):
            state = {'class': type(exporter),
                     'url': exporter.url,
                     'config': exporter.configuration()}
            exporter.__picklestate = state
        state = exporter.__picklestate
        sources = self.exporter.get_sources()
        state['sources'] = {}
        for source in sources:
            state['sources'][source.url] = self.exporter.get_event_names(source)
        return state
    def __setstate__(self, state):
        self.exporter = None
        self.state = state
    def __call__(self):
        if self.exporter is None:
            try: self.exporter = as_node(self.state['url'])
            except KeyError: self.exporter = self.state.get('class')()
            config = self.state['config']
            parent = as_node(config['parent'])
            config.setdefault('nodespace', parent.nodespace)
            self.exporter.configure(config)
            self.exporter.start()
        for source, args in self.state.get('sources', {}).items():
            try:
                self.exporter.add_source(source, *args)
            except:
                msglog.exception()
        return self.exporter
register_adapter(ExporterPickler)
Example #44
0
            row = HTMLgen.TR()
            row.append(HTMLgen.TD(child.nodeName))
            row.append(HTMLgen.TD(child.nodeID))
            value = child.nodeValue
            if value is None: value = 'N/A'
            row.append(HTMLgen.TD(value))
            rows.append(row)
        child_table.append(*rows)
        child_section.append(child_table)

        document.append(config_section)
        document.append(child_section)
        return str(document)


register_adapter(HTMLDomDocument)


class HTMLDomNodeConfiguration(object):
    implements(IWebContent)
    adapts(IDomNode)

    def __init__(self, domnode):
        self.domnode = domnode
        self.base_doc = HTMLgen.SimpleDocument(title='DomNode Browser',
                                               style=read('node_style.css'))

    def render(self):
        attrs = KeyWordAssist()
        document = self.base_doc.copy()
        parent = self.domnode.parentNode
Example #45
0
                actionform = HTMLgen.Form(request_path)
                actioninput = HTMLgen.Input(name=action, 
                                            value=encoded, type='hidden')
                actionform.append(actioninput)
                if action == "remove":
                    actionform.name = "Remove Host"
                    actionform = adorn(actionform, targetID="cloud-config", id=formId)
                actionform.submit.value = ' - '
                actionform.submit.onClick = ("return confirmDialog('" + formId + "', 'Remove"
                                             " peer from cloud?', false);")
                actioncell.append(actionform)
                if len(actions) > 1 and action != actions[-1]: 
                    actioncell.append(' ')
            row.append(actioncell)
            formation_table.append(row)
        formation_section.append(formation_table)
        
        add_form = HTMLgen.Form(request_path)
       #addinput = HTMLgen.Input(name='add', value='', type='text')
       #add_form.append(addinput)
       #add_form = adorn(add_form, targetID="cloud-config")
        add_form.submit.value = ' + '
        add_form.submit.name = "Add Host"
        add_form.submit.onClick = "return popup_form(this, '%s', true)" % addform
        formation_section.append(add_form)
        document.append(formation_section)
        return str(document)

register_adapter(HTMLCloudManager)

Example #46
0
        state['targets'] = self.event.targets
        state['topics'] = self.event.topics
        state['event'] = self.event.event
        state['guid'] = self.event.GUID
        state['portal']=self.event.portal
 
        return state
    def __setstate__(self, state):
        self.state = state
        self.event = None
    def __call__(self):
        if self.event is None:
            state = self.state
            guid = state.get('guid')
            try: cloudevent = Event.get_event(guid)
            except KeyError:
                source = state.get('source')()
                topics = state.get('topics')
                origin = state.get('origin')
                targets = state.get('targets')
                event = state.get('event')
                portal=state.get('portal')
                cloudevent = state.get('class')(source, origin, targets,portal,
                                                topics, event, guid)
            self.event = cloudevent
        return self.event
    def __str__(self):
        return 'CloudEventPickler(%s)' % str(self.event)

register_adapter(CloudEventPickler)
Example #47
0
            children_table.append(row)
        children_section.append(children_table)
        for childtype in self.get_allowed_additions():
            add_form = HTMLgen.Form(request_path)
            add_form.append(context)
            addinput = HTMLgen.Input(name='add',
                                     value=childtype,
                                     type='hidden')
            add_form.append(addinput)
            add_form.submit.value = 'Add ' + childtype
            children_section.append(add_form)
        document.append(children_section)
        return str(document)


register_adapter(HTMLPeriodicDriverManagerForm)

closescript = """
function handle_close() {
  if (window.opener) {
    window.close();
    return false;
  } else {
    return true;
  }
}
"""


class HTMLPeriodicDriverForm(object):
    implements(IWebContent)
Example #48
0
        self.graph_element = HTMLgen.Script()
        preferences = self.trend.get_preferences()
        window_width = 800
        window_height = 600
        try:
            window_width = int(float(preferences["width"]))
        except:
            pass
        try:
            window_height = int(float(preferences["height"]))
        except:
            pass
        self.graph_element.append(
            """
        var so = new SWFObject("/graphtool/EmbeddedGraph.swf", "trend_swf",
                               %(width)s, %(height)s, 8);
        so.addParam("wmode", "opaque");
        """
            % {"width": window_width, "height": window_height}
        )
        self.add_variable("CFG.log_uri", self.trend.log_url)
        self.write_preferences(preferences)
        self.graph_element.append(
            """so.write("trend_div");
        """
        )
        return


register_adapter(HTMLTrend)
Example #49
0
        return setattr(self.subject, name, value)
    def has_method(self, name):
        return callable(self.getattr(name, None))
    def get_method(self, name, default=Undefined):
        if not self.has_method(name) and self.hasattr(name):
            # TypeError if attribute exists but is not callable.
            message = "'%s' object attribute '%s' not callable"
            raise TypeError(message % (self._typename(), name))
        return self.getattr(name, default)
    def provides_interface(self, interface):
        if isinstance(interface, str):
            try:
                eval(interface)
            except NameError:
                module,sep,datatype = interface.rpartition(".")
                if not module:
                    raise
                exect("import " + module)
            interface = eval(interface)
        return interface.providedBy(self.subject)
    def get_interfaces(self, named=False):
        interfaces = list(provided_by(self.subject))
        if named:
            items = []
            for interface in interfaces:
                items.append((interface.__module__, interface.__name__))
                interfaces = [".".join(item) for item in items]
        return interfaces

register_adapter(Inspector)
Example #50
0
                msglog.exception()
                msg = ("Failed create row for: %s" % display_name)
                msglog.log('trendmanager', msglog.types.ERR, msg)
        # Add + to the last actioncell (maybe the actionheader if no trends)
        actionform = CustomForm(request_path)
        actionform.submit.value = ' + '
        actionform.submit.name = 'Add Trend'
        trend_name = self.manager.generate_trend_name()
        add_form = (addform) % (trend_name)
        add_form = urllib.quote(add_form)
        actionform.submit.onClick = "return popup_form(this, '%s', true); return false;" % add_form
        trend_section.append(actionform)
        return str(trend_section)


register_adapter(HTMLTrendManager)


class HTMLTrendPointConfiguration(object):
    implements(IWebContent)
    adapts(ITrendPointConfiguration)

    def __init__(self, tpf):
        self.tpf = tpf
        self.trend = tpf.trend
        self.encoded_name = urllib.quote_plus(self.trend.name)
        self.globalsettingscontainer = None
        self.trend_configuration = None
        return

    def add_global_settings(self):
Example #51
0
        xmldoc.root_element = feed
        return xmldoc

    def setup_entries(self, request_path, cache_id):
        entries = []
        content = "Alarm %s switched to %s state at %s.\n\n"
        content += "Please visit the Alarm Management link provided "
        content += "in this entry to view details and make modifications."
        t_update = time.time()
        updated = atom.Updated(t_update)
        for event in self.flattened:
            if event.state == 'inactive':
                continue
            entry = atom.Entry()
            entry.title = atom.Title(event.name)
            entry.id = atom.Id(event.id)
            entry.summary = atom.Summary('Alarm %s' % event.state)
            entry.published = atom.Published(event.timestamp)
            entry.updated = updated
            entry_content = content % (event.name, event.state.upper(),
                                       entry.published.text)
            entry.content = atom.Content(entry_content)
            entry.categories.insert(0, self.categories[event.state])
            entry.link = atom.Link(
                path.join(self.link_base, urllib.quote(event.name), event.id))
            entries.append(entry)
        return entries


register_adapter(AtomSyndicator)
Example #52
0
class PickleableAlarm(PickleableConfigurableNode):
    adapts(IAlarm)
    privatevars = PickleableConfigurableNode.privatevars[:]
    privatevars += ['events']

class PickleableOGConfigurableNode(PickleableConfigurableNode):
    adapts(IOGConfigurableNode)
    privatevars = ['name', 'parent']
    excludevars = ['name', 'parent']

class PickleableCompositeNode(PickleableConfigurableNode):
    adapts(ICompositeNode)
    privatevars = PickleableConfigurableNode.privatevars[:]
    privatevars += ['_CompositeNode__children', '_CompositeNode__nameorder']

class PickleableOGCompositeNode(PickleableOGConfigurableNode):
    adapts(IOGCompositeNode)
    privatevars = PickleableOGConfigurableNode.privatevars[:]
    privatevars += ['_children']
    def __init__(self, context):
        super(PickleableOGCompositeNode, self).__init__(context)
        context._children = getattr(context, '_children', {})

register_adapter(Pickleable)
register_adapter(PersistentAdapter)
register_adapter(PickleableConfigurableNode, IConfigurableNode, IPickleable)
register_adapter(PickleableOGConfigurableNode, IOGConfigurableNode, IPickleable)
register_adapter(PickleableCompositeNode, ICompositeNode, IPickleable)
register_adapter(PickleableOGCompositeNode, IOGCompositeNode, IPickleable)
register_adapter(PickleableAlarm, IAlarm, IPickleable)
Example #53
0
        for child in children:
            row = HTMLgen.TR()
            row.append(HTMLgen.TD(child.nodeName))
            row.append(HTMLgen.TD(child.nodeID))
            value = child.nodeValue
            if value is None: value = 'N/A'
            row.append(HTMLgen.TD(value))
            rows.append(row)
        child_table.append(*rows)
        child_section.append(child_table)

        document.append(config_section)
        document.append(child_section)
        return str(document)

register_adapter(HTMLDomDocument)

class HTMLDomNodeConfiguration(object):
    implements(IWebContent)
    adapts(IDomNode)

    def __init__(self, domnode):
        self.domnode = domnode
        self.base_doc = HTMLgen.SimpleDocument(
            title='DomNode Browser', style=read('node_style.css'))

    def render(self):
        attrs = KeyWordAssist()
        document = self.base_doc.copy()
        parent = self.domnode.parentNode
        title = 'Edit DOM Node: <em>%s</em>'
Example #54
0
    adapts(IFaultEvent)
    
    def __init__(self, faultevent):
        self.faultevent = faultevent
    def as_item(self):
        event = self.faultevent
        item = rss.Item()
        title = event.title
        faulttype = event.faulttype
        #item.title = rss.Title('%s: %s' % (title, faulttype))
        item.title = rss.Title(
            '%s (%s): %s' % (title, 'P1', event.state.upper()))
        item.link = rss.Link(
            'http://%s/syndication?guid=%s' % (event.origin, event.GUID))
        item.pub_date = rss.PubDate(event.timestamp)
        description = event.description
        event_history = event.history + [event.current_event]
        for change in event_history:
            description += '<br />\n%s.  ' % change.detail
        item.description = rss.Description(tools.escape_html(description))
        item.guid = rss.Guid(event.GUID)
        item.source = rss.Source(
            event.LOCALORIGIN, 'http://%s/syndication' % event.LOCALORIGIN)
        for category in event.types:
            item.categories.append(rss.Category(category))
        return item
    def render(self):
        return str(self.as_item())

register_adapter(RSS2FaultEventItem)
Example #55
0
            informers.append(self.fallback_informer)
        for informer in informers:
            permission = informer.getting_permission(attribute)
            if permission:
                return permission
        return None

    def setting_permission(self, attribute):
        informers = self._informers[:]
        if not informers and self.fallback_informer is not None:
            informers.append(self.fallback_informer)
        for informer in informers:
            permission = informer.setting_permission(attribute)
            if permission:
                return permission
        return None

    def deleting_permission(self, attribute):
        informers = self._informers[:]
        if not informers and self.fallback_informer is not None:
            informers.append(self.fallback_informer)
        for informer in informers:
            permission = informer.deleting_permission(attribute)
            if permission:
                return permission
        return None


register_adapter(SecuredAdapter)
register_adapter(PermissionChecker)
Example #56
0
            row.append(actioncell)
            children_table.append(row)
        children_section.append(children_table)
        for childtype in self.get_allowed_additions():
            add_form = HTMLgen.Form(request_path)
            add_form.append(context)
            addinput = HTMLgen.Input(name = 'add',
                                     value = childtype,
                                     type = 'hidden')
            add_form.append(addinput)
            add_form.submit.value = 'Add ' + childtype
            children_section.append(add_form)
        document.append(children_section)
        return str(document)

register_adapter(HTMLPeriodicDriverManagerForm)

closescript = """
function handle_close() {
  if (window.opener) {
    window.close();
    return false;
  } else {
    return true;
  }
}
"""

class HTMLPeriodicDriverForm(object):
    implements(IWebContent)
    adapts(IPeriodicDriver)