Beispiel #1
0
    def call(self, sender, log, **kw):
        log.debug('Zenoss Admin user plugin running with %s' % sender)

        sender = sender.lower()

        # remove the resource from the sender
        if '/' in sender:
            sender = sender.split('/')[0]

        adapter = ZenAdapter()

        if sender == None: return False
        log.debug(
            'Got a message from %s.  Going to look for a Zenoss user to map it to.'
            % sender)
        # look through all zenoss users until we find one with the sender's JabberID
        for user in adapter.userSettings():
            try:
                jabberProperty = user.getProperty('JabberId').lower()
            except:
                jabberProperty = None
            if jabberProperty == sender:
                log.debug(
                    'JabberID %s maps to the sender: %s.  This user is authorized.'
                    % (jabberProperty, sender))
                return True

        log.debug(
            'Unable to find a Zenoss user with jabberId!  This sender is NOT authorized: %s'
            % sender)
        return False
Beispiel #2
0
    def call(self, sender, log, **kw):
        log.debug('Zenoss Admin user plugin running with %s' % sender)

        sender = sender.lower()

        # remove the resource from the sender
        if '/' in sender:
            sender = sender.split('/')[0]

        adapter = ZenAdapter()

        if sender == None: return False
        log.debug('Got a message from %s.  Going to look for a Zenoss user to map it to.' % sender)
        # look through all zenoss users until we find one with the sender's JabberID
        for user in adapter.userSettings():
            try:
                jabberProperty = user.getProperty('JabberId').lower()
            except:
                jabberProperty = None
            if jabberProperty == sender:
                log.debug('JabberID %s maps to the sender: %s.  This user is authorized.' % (jabberProperty, sender))
                return True

        log.debug('Unable to find a Zenoss user with jabberId!  This sender is NOT authorized: %s' % sender)
        return False
Beispiel #3
0
 def call(self, args, log, **kw):
     log.debug('Users plugin running with arguments %s' % args)
     # TODO switch this to optparse and make sure help works.
     adapter = ZenAdapter()
     users = []
     message = 'No Users'
     haveUser = False
     for user in adapter.userSettings():
         haveUser = True
         try:
             jabberId = user.getProperty('JabberId') or 'No JabberId'
         except AttributeError:
             jabberId = 'No JabberId'
         users.append('%s (%s)' % (user.id, jabberId))
     if haveUser:
         message = '\n'.join(users)
     return message
Beispiel #4
0
 def call(self, args, log, **kw):
     log.debug('Users plugin running with arguments %s' % args)
     # TODO switch this to optparse and make sure help works.
     adapter = ZenAdapter()
     users = []
     message = 'No Users'
     haveUser = False
     for user in adapter.userSettings():
         haveUser = True
         try:
             jabberId = user.getProperty('JabberId') or 'No JabberId'
         except AttributeError:
             jabberId = 'No JabberId'
         users.append('%s (%s)' % (user.id, jabberId))
     if haveUser:
         message = '\n'.join(users)
     return message
Beispiel #5
0
    def call(self, args, xmppAdapter, sender, twxml, log, **kw):
        log.debug('Modeler plugin running with arguments: %s' % args)

        adapter = ZenAdapter()
        opts = self.options()
        try:
            (options, arguments) = opts.parse_args(args)
            log.debug(
                'Done parsing arguments.  Options are "%s", arguments expanded to %s'
                % (options, arguments))
        except OptionError, message:
            return str(message)
Beispiel #6
0
    def call(self, args, log, **kw):
        log.debug('Data extraction plugin running with arguments %s' % args)

        opts = self.options()

        adapter = ZenAdapter()
        try:
            (options, arguments) = opts.parse_args(args)
            log.debug(
                'Done parsing arguments.  Options are "%s", arguments expanded to %s'
                % (options, arguments))
        except OptionError, message:
            return str(message)
Beispiel #7
0
  def call(self, args, log, client, sender, messageType, **kw):

    log.debug('Modeler plugin running with arguments: %s' % args)

    adapter = ZenAdapter()
    opts = self.options()

    try:
        (options, arguments) = opts.parse_args(args)
        log.debug('Done parsing arguments.  Options are "%s", arguments expanded to %s' % (options, arguments))
    except OptionError, message:
        client.sendMessage(str(message), sender, messageType)
        return False
Beispiel #8
0
class SetJid(Plugin):

  name = 'mapuser'
  capabilities = ['setjid', 'mapuser', 'help']

  def call(self, args, sender, log, **kw):
    log.debug('mapuser plugin running with %s' % args)
    opts = self.options()

    # parse the options
    try:
        (options, arguments) = opts.parse_args(args)
        log.debug('Done parsing arguments.  Options are "%s", arguments expanded to %s' % (options, arguments))
    except OptionError, message:
        return str(message)
    if options.zenUser is None or options.jabberId is None:
        return 'NO.  -u and -j are both required.'

    adapter = ZenAdapter()

    jabberId = options.jabberId.lower()
    haveUser = False
    for user in adapter.userSettings():
        if user.id.lower() == options.zenUser.lower():
            haveUser = True
            try:
                currentId = user.getProperty('JabberId')
            except AttributeError:
                currentId = False
            if currentId:
                if options.jabberId == currentId.lower():
                    if options.force:
                        self.mapIds(jabberId, user)
                        return 'This user mapping already looks like this.  Forced option was used, so I set it anyway.'
                    else:
                        return 'This user mapping already looks like this.'
                if '/' in sender:
                    sender = sender.split('/')[0]
                if currentId.lower() == sender.lower():
                    if options.force:
                        return 'This is your Zenoss user id, and the mapping is already set correctly.  Changing it will prevent you from communicating with me.  If you really want to change it, do so from the Zenoss interface or -f.'
                    else:
                        self.mapIds(jabberId, user)
                        return 'This is your Zenoss user id, and the mapping is already set correctly.  However, the force option was used, so I set it anyway.  Since this will probably break communication with me, you can change it back from the Zope interface.'
            log.debug('Setting the jabberid mapping property to %s for zenuser %s' % (jabberId, user))
            self.mapIds(jabberId, user)
            break
    if haveUser:
        return 'JabberId for this user has been saved.  Thanks.'
    else:
        return 'Sorry! I Could not find a Zenoss user by the name %s' % options.zenUser
Beispiel #9
0
class Events(Plugin):

    name = 'events'
    capabilities = ['events', 'issues', 'help']

    def call(self, args, log, **kw):
        log.debug('Event plugin running with %s' % args)

        opts = self.options()
        # parse the options
        try:
            (options, arguments) = opts.parse_args(args)
            log.debug(
                'Done parsing arguments.  Options are "%s", arguments expanded to %s'
                % (options, arguments))
        except OptionError, message:
            return str(message)

        adapter = ZenAdapter()

        if options.acked:
            log.debug('Looking for Acknowledged events')
            message = 'Acknowledged Events\n'
            events = adapter.acknowledgedEvents()
        else:
            message = 'Current Events\n'
            events = adapter.newEvents()
        if options.device:
            devices = adapter.devices(options.device)
            if len(devices) == 0:
                return 'Cannot find a device, ip or mac named "%s"' % options.device
            deviceIds = [device.id for device in devices]
            print 'Found %d devices machting %s' % (len(devices), devices)
            events = filter(lambda event: event.device in deviceIds, events)

        if len(events) == 0:
            return 'Congratulations.  No events!'
        for event in events:
            if event.component:
                message += '%s %s (%s): (id:%s)\n' % (
                    event.device, event.component, event.summary, event.evid)
            else:
                message += '%s: %s (id:%s)\n' % (event.device, event.summary,
                                                 event.evid)
        return message
Beispiel #10
0
        # parse the options
        try:
            (options, arguments) = opts.parse_args(args)
            log.debug(
                'Done parsing arguments.  Options are "%s", arguments expanded to %s'
                % (options, arguments))
        except OptionError, message:
            client.sendMessage(str(message), sender, messageType)
            return False
        except TypeError:
            client.sendMessage('Unknown option, use -h for help', sender,
                               messageType)
            return False

        adapter = ZenAdapter()

        if options.acked:
            log.debug('Looking for Acknowledged events')
            message = 'Acknowledged Events\n'
            events = adapter.acknowledgedEvents()
        else:
            message = 'Current Events\n'
            events = adapter.newEvents()
        if options.device:
            devices = adapter.devices(options.device)
            if len(devices) == 0:
                message = 'Cannot find a device, ip or mac named "%s"' % options.device
                client.sendMessage(message, sender, messageType)
                return False
            deviceIds = [device.id for device in devices]
    log.debug('Event plugin running with %s' % args)

    opts = self.options()

    # parse the options
    try:
        (options, arguments) = opts.parse_args(args)
        log.debug('Done parsing arguments.  Options are "%s", arguments expanded to %s' % (options, arguments))
    except OptionError, message:
        client.sendMessage(str(message), sender, messageType)
        return False
    except TypeError:
        client.sendMessage('Unknown option, use -h for help', sender, messageType)
        return False

    adapter = ZenAdapter()

    if options.acked:
        log.debug('Looking for Acknowledged events')
        message = 'Acknowledged Events\n'
        events = adapter.acknowledgedEvents()
    else:
        message = 'Current Events\n'
        events = adapter.newEvents()
    if options.device:
        devices = adapter.devices(options.device)
        if len(devices) == 0:
            message = 'Cannot find a device, ip or mac named "%s"' % options.device
            client.sendMessage(message, sender, messageType)
            return False
        deviceIds = [device.id for device in devices]