Пример #1
0
    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())
Пример #2
0
    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)
Пример #3
0
    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