def test_ok(self): n = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() self.assertEqual([], n.getAll()) self.assertEqual(2, n.use_count) o = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() self.assertEqual(3, o.use_count) o = None self.assertEqual(2, n.use_count)
def test_ok(self): m = kea.CfgMgr() c = m.getCurrentCfg() self.assertEqual(3, c.use_count) d = m.getCurrentCfg() self.assertEqual(4, c.use_count) self.assertEqual(4, d.use_count)
def test_ok(self): m = kea.CfgMgr() c = m.getStagingCfg() self.assertEqual(2, c.use_count) d = m.getStagingCfg() self.assertEqual(3, c.use_count) self.assertEqual(3, d.use_count) d = None self.assertEqual(2, c.use_count)
def get_response(args): subnet_id = get_arg(args, 'subnet-id', None) if subnet_id is None: config = kea.CfgMgr().getCurrentCfg() subnet_ids = [s.getID() for s in config.getCfgSubnets4().getAll()] elif not isinstance(subnet_id, int): raise CommandError("'subnet-id' is not integer") else: subnet_ids = [subnet_id] num = 0 lease_mgr = kea.LeaseMgr() for s in subnet_ids: num += lease_mgr.wipeLeases4(s) msg = ('deleted %d IPv4 lease(s) from subnet(s) %s' % (num, ' '.join([str(s) for s in subnet_ids]))) return {'result': 0 if num else 3, 'text': msg}
def test_ok(self): n = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() self.assertEqual([], n.toElement())
def test_badarg_type(self): n = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() self.assert_method_no_arguments(n.toElement)
def test_ok(self): n = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() self.assertIsNone(n.selectSubnet('192.168.0.1'))
def test_badarg_type(self): n = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() with self.assertRaises(TypeError) as cm: n.selectSubnet(1) self.assertEqual(("argument 1 must be str, not int", ), cm.exception.args)
def test_badarg_count(self): n = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() self.assert_method_one_arg_no_keywords(n.selectSubnet)
def test_ok(self): n = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() self.assertIsNone(n.getSubnet(1))
def test_ok(self): m = kea.CfgMgr() self.assertIsInstance(m, kea.CfgMgr)
def test_badarg_count(self): n = kea.CfgMgr().getCurrentCfg().getCfgSubnets4() self.assert_method_no_arguments(n.getAll)
def test_ok(self): c = kea.CfgMgr().getStagingCfg() e = c.toElement() self.assertIsInstance(e, dict)
def test_badarg_count(self): c = kea.CfgMgr().getStagingCfg() self.assert_method_no_arguments(c.toElement)
def test_ok(self): c = kea.CfgMgr().getStagingCfg() n = c.getCfgSubnets4() self.assertEqual(2, n.use_count)
def test_badarg_count(self): m = kea.CfgMgr() self.assert_method_no_arguments(m.getStagingCfg)
def parse_lease4(args): lease = kea.Lease4() if not isinstance(args, dict): raise CommandError("parameters missing or is not a map") lease.addr = get_string_arg(args, 'ip-address') lease.hwaddr = get_string_arg(args, 'hw-address') subnet_id = get_int_arg(args, 'subnet-id', 0) cfg = kea.CfgMgr().getCurrentCfg() if subnet_id: subnet = cfg.getCfgSubnets4().getSubnet(subnet_id) if not subnet: raise CommandError( 'no IPv4 subnet with subnet-id=%d currently configured' % subnet_id) if not subnet.inRange(lease.addr): raise CommandError( 'address %s does not belong to subnet %s, subnet-id=%s' % (lease.addr, subnet.toText(), subnet_id)) else: subnet = cfg.getCfgSubnets4().selectSubnet(lease.addr) if not subnet: raise CommandError( 'subnet-id not specified and failed to find a subnet for address %s' % lease.addr) subnet_id = subnet.getID() lease.subnet_id = subnet_id client_id = get_string_arg(args, 'client-id', None) if client_id is not None: lease.client_id = client_id valid_lft = get_int_arg(args, 'valid-lft', None) if valid_lft is None: valid_lft = subnet.getValid() lease.valid_lft = valid_lft expire = get_int_arg(args, 'expire', None) if expire is not None: if expire <= 0: raise CommandError( 'expiration time must be positive for address %s' % lease.addr) if expire < valid_lft: raise CommandError( 'expiration time must be greater than valid lifetime for address %s' % lease.addr) cltt = expire - valid_lft else: cltt = int(time.time()) lease.cltt = cltt lease.fqdn_fwd = get_bool_arg(args, 'fqdn-fwd', False) lease.fqdn_rev = get_bool_arg(args, 'fqdn-rev', False) lease.hostname = get_string_arg(args, 'hostname', None) if lease.hostname and (lease.fqdn_fwd or lease.fqdn_rev): raise CommandError( 'no hostname specified and either forward or reverse' ' fqdn was set to true') lease.state = get_int_arg(args, 'state', 0) if lease.state < 0 or lease.state > kea.STATE_EXPIRED_RECLAIMED: raise CommandError( 'invalid state %s: must be 0 (default), 1 (declined),' ' or 2 (expired-reclaimed)' % lease.state) ctx = get_map_arg(args, 'user-context', {}) comment = get_string_arg(args, 'comment', None) if comment is not None: if 'comment' in ctx: raise CommandError( "duplicated comment entry '%s' in user context '%s'" % (comment, ctx)) ctx['comment'] = comment if ctx: lease.setContext(ctx) return lease
def test_ok(self): m = kea.CfgMgr() c = m.getStagingCfg() self.assertIsInstance(c, kea.SrvConfig)