IP Address Pool Error in Plesk

Sometimes when working with Plesk version 10 you get an ip address pool error:

Error: There is no IP address x.x.x.x in the pool

It shows up when the subscription’s ip address is changed through Websites & Domains > Web Hosting Access. That clears the subscription’s IP address pool. The issue exists in Plesk 10.4.4 when the Open hosting operations option is enabled in the admin panel under Tools & Settings > Interface Management.

Fixed through the database. First, keep in mind Plesk works with the psa database, so make a backup:

mysqldump -uadmin -p`cat /etc/psa/.psa.shadow ` psa > psa.sql

Then connect to the DB:

mysql -uadmin -p`cat /etc/psa/.psa.shadow ` psa

And run this query. It gives us a list of pools that have no pool_id value:

select distinct c.id, c.pname from clients c, domains d where d.cl_id = c.id and c.pool_id = 0;

Screenshot from 2014-06-30 09:50:31

Next we need to find out which ip address was assigned to the client with our id. Note that I plugged the id from the first query’s output into c.id:

select distinct ip.id, ip.ip_address from domains d, clients c, dom_param dp, IP_Addresses ip where ip.id = dp.val and dp.param = 'ip_addr_id' and dp.dom_id = d.id and d.cl_id = c.id and c.id = 94;

Screenshot from 2014-06-30 09:50:41

Now the type of the pool our ip address belongs to:

select type from ip_pool where id = (select pool_id from clients where type = 'admin') and ip_address_id = 6;

Screenshot from 2014-06-30 09:55:13

Get the value of the last record in the ip_pool table and add one to it:

select max(id) + 1 from ip_pool;

Insert the values we need into the ip_pool table. Take into account the last record’s number in this table, the id of the ip address assigned to the client, and the ip address type:

insert into ip_pool (id, ip_address_id, type) values (101, 6, 'shared');

Update the clients table:

update clients set pool_id = 101 where id = 94;

http://kb.parallels.com/en/116060