diff --git a/opentrafficshaper/plugins/configmanager.pm b/opentrafficshaper/plugins/configmanager.pm index 59f19248393456c283a290a2d82e2ab6e66dcc51..d8893da5a6baf67bc1644e57ceefc216f797a153 100644 --- a/opentrafficshaper/plugins/configmanager.pm +++ b/opentrafficshaper/plugins/configmanager.pm @@ -1092,7 +1092,7 @@ sub _session_tick # Loop through pool change queue while (my ($pid, $pool) = each(%{$globals->{'PoolChangeQueue'}})) { - my $shaperState = getPoolShaperState($pool->{'ID'}); + my $shaperState = getPoolShaperState($pid); # Pool is newly added if ($pool->{'Status'} == CFGM_NEW) { @@ -1105,7 +1105,7 @@ sub _session_tick ); $kernel->post('shaper' => 'pool_add' => $pid); # Set pending online - setPoolShaperState($pool->{'ID'},SHAPER_PENDING); + setPoolShaperState($pid,SHAPER_PENDING); $pool->{'Status'} = CFGM_ONLINE; # Remove from queue delete($globals->{'PoolChangeQueue'}->{$pid}); @@ -1149,7 +1149,7 @@ sub _session_tick ); $kernel->post('shaper' => 'pool_change' => $pid); # Set pending online - setPoolShaperState($pool->{'ID'},SHAPER_PENDING); + setPoolShaperState($pid,SHAPER_PENDING); $pool->{'Status'} = CFGM_ONLINE; # Remove from queue delete($globals->{'PoolChangeQueue'}->{$pid}); @@ -1184,7 +1184,7 @@ sub _session_tick $pid ); $kernel->post('shaper' => 'pool_remove' => $pid); - setPoolShaperState($pool->{'ID'},SHAPER_PENDING); + setPoolShaperState($pid,SHAPER_PENDING); } else { $logger->log(LOG_NOTICE,"[CONFIGMANAGER] Pool '%s' [%s] marked offline, but still has pool members, ". "aborting remove", @@ -1223,13 +1223,13 @@ sub _session_tick # Remove pool from name map delete($globals->{'PoolNameMap'}->{$pool->{'InterfaceGroupID'}}->{$pool->{'Name'}}); # Remove pool member mapping - delete($globals->{'PoolMemberMap'}->{$pool->{'ID'}}); + delete($globals->{'PoolMemberMap'}->{$pid}); # Remove from queue delete($globals->{'PoolChangeQueue'}->{$pid}); # Cleanup pool overrides - _remove_pool_override($pool->{'ID'}); + _remove_pool_override($pid); # Remove pool - delete($globals->{'Pools'}->{$pool->{'ID'}}); + delete($globals->{'Pools'}->{$pid}); } } else { @@ -1252,7 +1252,7 @@ sub _session_tick next; } - my $shaperState = getPoolMemberShaperState($poolMember->{'ID'}); + my $shaperState = getPoolMemberShaperState($pmid); # Pool member is newly added if ($poolMember->{'Status'} == CFGM_NEW) { @@ -1266,7 +1266,7 @@ sub _session_tick ); $kernel->post('shaper' => 'poolmember_add' => $pmid); # Set pending online - setPoolMemberShaperState($poolMember->{'ID'},SHAPER_PENDING); + setPoolMemberShaperState($pmid,SHAPER_PENDING); $poolMember->{'Status'} = CFGM_ONLINE; # Remove from queue delete($globals->{'PoolMemberChangeQueue'}->{$pmid}); @@ -1315,7 +1315,7 @@ sub _session_tick ); $kernel->post('shaper' => 'poolmember_change' => $pmid); # Set pending online - setPoolMemberShaperState($poolMember->{'ID'},SHAPER_PENDING); + setPoolMemberShaperState($pmid,SHAPER_PENDING); $poolMember->{'Status'} = CFGM_ONLINE; # Remove from queue delete($globals->{'PoolMemberChangeQueue'}->{$pmid}); @@ -1353,7 +1353,7 @@ sub _session_tick $pmid ); $kernel->post('shaper' => 'poolmember_remove' => $pmid); - setPoolMemberShaperState($poolMember->{'ID'},SHAPER_PENDING); + setPoolMemberShaperState($pmid,SHAPER_PENDING); } else { $logger->log(LOG_INFO,"[CONFIGMANAGER] Pool '%s' member '%s' [%s] marked offline and fresh, postponing", @@ -1371,15 +1371,15 @@ sub _session_tick ); # Unlink interface IP address map delete($globals->{'InterfaceGroups'}->{$pool->{'InterfaceGroupID'}}->{'IPMap'}->{$poolMember->{'IPAddress'}} - ->{$poolMember->{'ID'}}); + ->{$pmid}); # Unlink pool map - delete($globals->{'PoolMemberMap'}->{$pool->{'ID'}}->{$poolMember->{'ID'}}); + delete($globals->{'PoolMemberMap'}->{$pool->{'ID'}}->{$pmid}); # Remove from queue delete($globals->{'PoolMemberChangeQueue'}->{$pmid}); # We need to re-process the pool overrides after the member has been removed _resolve_pool_override([$poolMember->{'PoolID'}]); # Remove pool member - delete($globals->{'PoolMembers'}->{$poolMember->{'ID'}}); + delete($globals->{'PoolMembers'}->{$pmid}); # FIXME - Recheck IP conflicts and mark at least one pool member as unconflicted }