def _createRules(self, unused, netcfg, context): defer_list = [] for service, networks in self.access_cfg.permissions.iteritems(): ports = self.services[service] for port in ports: for interface, network in networks: protocol = port['proto'] ipv6 = (network.version() == 6) rule = { 'chain': 'INPUT', 'decision': 'ACCEPT', 'ipv6': ipv6, 'protocol': protocol, 'sources': [unicode(network)], 'input': interface, } if protocol == 'icmp': if ipv6: # ICMP is for IPv4 continue rule['icmp_type'] = port['icmp_type'] elif protocol == 'icmpv6': if not ipv6: # ICMPv6 is for IPv6 continue rule['icmpv6_type'] = port['icmpv6_type'] elif 'port' in port: rule['dport'] = port['port'] defer = self.core.callService(context, 'localfw', 'addFilterRule', rule) defer_list.append(defer) return gatherResults(defer_list)
def __call__(self, **args): sql = [] sql.append(self._sql_query(args, "count_average", 1).addCallback(self.decimal2str)) sql.append(self._sql_query(args, "count_average", 5).addCallback(self.decimal2str)) sql.append(self._sql_query(args, "count_average", 15).addCallback(self.decimal2str)) sql.append(self._sql_query(args, "count_packets").addCallback(self.decimal2int)) return gatherResults(sql).addCallback(self._returnPacket)
def _updatePorts(self, unused, context): defer_list = [] for service in self.services: try: self.services[service] = self.HARDCODED_SERVICES[service] except KeyError: defer = self.core.callService(context, service, "getPorts") defer.addCallback(self._updatePort, service) defer_list.append(defer) return gatherResults(defer_list)
def appendTop_cb(self, result, ctx, report, title, filter, table2, args2): table = result['table'] i = result['columns'].index(filter) deferreds = [] for line in table: if isinstance(line[i], (list, tuple)): value = line[i][1] else: value = line[i] args2[filter] = value d = self.ufwi_rpcd_core.callService(ctx, 'ufwi_log', 'table', table2, args2) deferreds.append(d) return gatherResults(deferreds).addCallback(self.appendTop_cb2, report, title, result)
def __call__(self, **args): self._arg_int(args, 'limit') args.pop('limit', None) self._arg_int(args, 'start') args.pop('start', None) self._arg_int(args, 'interval') args.pop('interval', None) self._arg_int(args, 'start_time') args.pop('start_time', None) self._arg_int(args, 'end_time') args.pop('end_time', None) self._arg_in (args, 'sortby', ('oob_time_sec', 'packets')) args.pop('sortby', None) self._arg_in (args, 'sort', ('DESC', 'ASC')) args.pop('sort', None) self._arg_bool (args, 'count') args.pop('count', None) if self.args['count']: return 0 defers = [] ts = self.args['start_time'] while ts < self.args['end_time']: start = ts end = ts + self.args['interval'] if end > self.args['end_time']: end = self.args['end_time'] args['start_time'] = start args['end_time'] = end table = self.PacketsCountSingleTable(self.ctx, self.database) defers.append(table(ts, **args)) ts = end return gatherResults(defers).addCallback(self.first_cb).addCallback(self._print_result)