def test_move_ips(self): pool1 = IPAddressPoolFactory.from_network('192.168.1.0/24') pool2 = IPAddressPoolFactory.from_network('192.168.2.0/23') pool3 = IPAddressPoolFactory.from_name('Target pool') self.assertEqual(254, pool1.get_ips().count()) self.assertEqual(510, pool2.get_ips().count()) self.assertEqual(0, pool3.get_ips().count()) GlobalIPManager.move_ips(pool3, '192.168.1.100', 50) GlobalIPManager.move_ips(pool3, '192.168.2.100', 1) self.assertEqual(204, pool1.get_ips().count()) self.assertEqual(509, pool2.get_ips().count()) self.assertEqual(51, pool3.get_ips().count())
def _handle_address_move(self, *args, **options): target_pool = Resource.active.get(pk=options['target-pool-id']) moved_ips = [] if options['file']: with open(options['file']) as ip_list_file: for ip_line in ip_list_file: ip_line = ip_line.decode('utf-8').strip() if not ip_line: continue ip_obj = GlobalIPManager.get_ip(ip_line) if ip_obj.move_to_pool(target_pool): moved_ips.append(ip_obj) elif options['ip_start']: start_ip = options['ip_start'].decode('utf-8') end_ip = options['ip_end'].decode('utf-8') count = options['count'] moved_ips = GlobalIPManager.move_ips(target_pool=target_pool, start_ip=start_ip, end_ip=end_ip, count=count) logger.info("IPs are moved to %s" % target_pool) self._print_addresses(moved_ips)
def register_license(cid, lid, ip_address, pool): assert cid > 0 assert lid > 0 assert ip_address assert pool assert isinstance(pool, IPAddressPoolGeneric) if not isinstance(ip_address, IPAddressGeneric): ip_address = GlobalIPManager.get_ip(ip_address) da_license, created = DirectAdminLicense.objects.update_or_create( cid=cid, lid=lid, defaults=dict(status=ip_address.status, assigned_ip=ip_address)) GlobalIPManager.move_ips(pool, ip_address, count=1) return da_license