Updated pg_num/pgp_num values for a pool are silently ignored if autoscale_mode is on:
if details['pg_autoscale_mode'] == 'on':
delta.pop('pg_num', None)
delta.pop('pgp_num', None)
This means that autoscale needs to be disabled first, but it has to be done in a separate run: