Beispiel #1
0
def do_pillage(config, opts, client):
    """ Pull the config from the specified VMware host and save it in the
    config.

    If no VMware host server was specified, it will pull the config from the
    first host returned from FindEntityView.

    """
    vhost = conf.get_value(opts, config, "vhost", prompt=False)
    host = api.get_host(client, vhost)

    pillage_vswitch_config(host.Config, config)
    pillage_portgroup_config(host.Config, config)

    config.write()
Beispiel #2
0
 def test_get_host(self):
     '''Test if the get_host function is working'''
     self.assertEqual(api.get_host(':a!b@host PRIVMSG #d :e'), 'host')
Beispiel #3
0
    def found_terminator(self):
        data = self.get_data().decode('utf8')
        # Check if we should ignore this message
        if re.search(config.ignore, data.lower()):
            return

        self.output('R%s' % data)

        # Take an accion based on the command
        command = data.split(' ', 2)[1]
        if data[:4] == 'PING':
            self.push('PONG %s\r\n' % data[5:])

        elif command ==  'PRIVMSG':
            nick = data[1:data.find('!')]
            channel = data[data.find(' PRIVMSG ')+9:data.find(' :')]
            for module in self.modules:
                self.modules[module].privmsg(nick, data, channel)
            # Command Hooks
            if channel == config.nick:
                channel = nick
            if ' :%s' % config.cmd_char in data:
                prm = None
                msg = api.get_message(data)
                cmd = msg[msg.find(config.cmd_char)+1:]
                user = User(nick)
                user.ident = api.get_ident(data)
                user.host = api.get_host(data)
                if ' ' in cmd:
                    prm = cmd[cmd.find(' ')+1:]
                    cmd = cmd[:cmd.find(' ')]

                if cmd in api.hooks[self.__address__]:
                    api.hooks[self.__address__][cmd](user, channel, prm)
                # Superuser Hooks
                if api.check_if_super_user(data):
                    if cmd in api.su_hooks[self.__address__]:
                        api.su_hooks[self.__address__][cmd](user, channel, prm)

        elif command ==  'NOTICE':
            nick = data[1:data.find('!')]
            channel = data[data.find(' NOTICE ')+8:data.find(' :')]
            print('channel: "%s"' % channel)
            for module in self.modules:
                self.modules[module].get_notice(nick, data, channel)

        elif command ==  'JOIN':
            nick = data.split('!')[0][1:]
            if nick.find('#') == -1:
                channel = data[data.find(' :#')+2:]
                host = data[data.find('@')+1:data.find(' JOIN ')]
                user1 = data[data.find('!'):data.find('@')]
                user = user1.replace("!", "")
                for module in self.modules:
                    self.modules[module].get_join(nick, user, host, channel)

        elif command == 'MODE':
            nick = api.get_nick(data)
            channel = data[data.find(' MODE ')+6:]
            mode = channel[channel.find(' ')+1:]
            channel = channel[:channel.find(' ')]
            for hook in api.mode_hooks[self.__address__]:
                hook(nick, channel, mode)

        elif re.search('[0-9]+ *' + config.nick, data):
            code = data.split()[1]
            for module in self.modules:
                self.modules[module].get_raw('CODE', (code, data))
            
            if code == '001':
                if bbot.api.get_config_bool('main', 'use-services'):
                    self.push('PRIVMSG NickServ :IDENTIFY %s %s\r\n' %
                                (config.username, config.password))
                    time.sleep(config.sleep_after_id)
                for channel in config.autojoin:
                    self.push('JOIN %s\r\n' % channel)
Beispiel #4
0
    def found_terminator(self):
        data = self.get_data().decode("utf8")
        # Check if we should ignore this message
        if re.search(config.ignore, data.lower()):
            return

        self.output("R%s" % data)

        # Take an accion based on the command
        command = data.split(" ", 2)[1]
        if data[:4] == "PING":
            self.push("PONG %s\r\n" % data[5:])

        elif command == "PRIVMSG":
            nick = data[1 : data.find("!")]
            channel = data[data.find(" PRIVMSG ") + 9 : data.find(" :")]
            for module in self.modules:
                self.modules[module].privmsg(nick, data, channel)
            # Command Hooks
            if channel == config.nick:
                channel = nick
            if " :%s" % config.cmd_char in data:
                prm = None
                msg = api.get_message(data)
                cmd = msg[msg.find(config.cmd_char) + 1 :]
                user = User(nick)
                user.ident = api.get_ident(data)
                user.host = api.get_host(data)
                if " " in cmd:
                    prm = cmd[cmd.find(" ") + 1 :]
                    cmd = cmd[: cmd.find(" ")]

                if cmd in api.hooks[self.__address__]:
                    api.hooks[self.__address__][cmd](user, channel, prm)
                # Superuser Hooks
                if api.check_if_super_user(data):
                    if cmd in api.su_hooks[self.__address__]:
                        api.su_hooks[self.__address__][cmd](user, channel, prm)

        elif command == "NOTICE":
            nick = data[1 : data.find("!")]
            channel = data[data.find(" NOTICE ") + 8 : data.find(" :")]
            for module in self.modules:
                self.modules[module].get_notice(nick, data, channel)

        elif command == "JOIN":
            nick = data.split("!")[0][1:]
            if nick.find("#") == -1:
                channel = data[data.find("#") :]
                host = data[data.find("@") + 1 : data.find(" JOIN ")]
                user1 = data[data.find("!") : data.find("@")]
                user = user1.replace("!", "")
                for module in self.modules:
                    self.modules[module].get_join(nick, user, host, channel)

        elif command == "MODE":
            nick = api.get_nick(data)
            channel = data[data.find(" MODE ") + 6 :]
            mode = channel[channel.find(" ") + 1 :]
            channel = channel[: channel.find(" ")]
            for hook in api.mode_hooks[self.__address__]:
                hook(nick, channel, mode)

        elif re.search("[0-9]+ *" + config.nick, data):
            code = data.split()[1]
            for module in self.modules:
                self.modules[module].get_raw("CODE", (code, data))

            if code == "001":
                if bbot.api.get_config_bool("main", "use-services"):
                    self.push("PRIVMSG NickServ :IDENTIFY %s %s\r\n" % (config.username, config.password))
                    time.sleep(config.sleep_after_id)
                for channel in config.autojoin:
                    self.push("JOIN %s\r\n" % channel)