MT#5349 API: Implement special dompref removal.

gjungwirth/fix_tests
Andreas Granig 12 years ago
parent ee9d4fab2f
commit 1359aa556b

@ -194,6 +194,53 @@ sub update_item {
# in case of PATCH, we remove only those entries marked for removal in the patch
try {
foreach my $k(keys %{ $old_resource }) {
given($k) {
# no special treatment for *_sound_set deletion, as id is stored in right name
when(/^rewrite_rule_set$/) {
$c->log->debug("+++++++++++++ check $k for deletion");
unless(exists $resource->{$k}) {
$c->log->debug("+++++++++++++ $k marked for deletion");
foreach my $p(qw/caller_in_dpid callee_in_dpid caller_out_dpid callee_out_dpid/) {
my $rs = NGCP::Panel::Utils::Preferences::get_dom_preference_rs(
c => $c,
attribute => 'rewrite_' . $p,
prov_domain => $item->provisioning_voip_domain,
);
next unless $rs; # unknown resource, just ignore
$rs->delete_all;
}
}
}
when(/^(adm_)?ncos$/) {
unless(exists $resource->{$k}) {
my $rs = NGCP::Panel::Utils::Preferences::get_dom_preference_rs(
c => $c,
attribute => $k . '_id',
prov_domain => $item->provisioning_voip_domain,
);
next unless $rs; # unknown resource, just ignore
$rs->delete_all;
}
}
when(/^(man_)?allowed_ips$/) {
unless(exists $resource->{$k}) {
my $rs = NGCP::Panel::Utils::Preferences::get_dom_preference_rs(
c => $c,
attribute => $k . '_grp',
prov_domain => $item->provisioning_voip_domain,
);
next unless $rs; # unknown resource, just ignore
if($rs->first) {
$c->model('DB')->resultset('voip_allowed_ip_groups')->search({
group_id => $rs->first->value,
})->delete_all;
}
$rs->delete_all;
}
}
default {
unless(exists $resource->{$k}) {
my $rs = NGCP::Panel::Utils::Preferences::get_dom_preference_rs(
c => $c,
@ -204,6 +251,8 @@ sub update_item {
$rs->delete_all;
}
}
}
}
# TODO: also go over special cases (rewrite_rule_set) and delete them
# if not available in $resource

Loading…
Cancel
Save