TT#22422 make rtc errors fail on reseller changes

Change-Id: I63fc5ffbf85ff77bde5ab0af915ac6b3660868ef
(cherry picked from commit 1c18562a68)
changes/72/15972/1
Gerhard Jungwirth 8 years ago
parent 14cd84324d
commit 9b44043fda

@ -200,7 +200,6 @@ sub POST :Allow {
status => $resource->{status},
contract_id => $resource->{contract_id},
});
my $rtcfail = 0;
NGCP::Panel::Utils::Reseller::create_email_templates( c => $c, reseller => $reseller );
NGCP::Panel::Utils::Rtc::modify_reseller_rtc(
resource => $resource,
@ -210,10 +209,8 @@ sub POST :Allow {
my ($msg, $debug) = @_;
$c->log->debug($debug) if $debug;
$c->log->warn($msg);
$rtcfail = 1;
return;
die "failed to create rtcengine reseller";
});
die "failed to create rtcengine reseller" if($rtcfail);
} catch($e) {
$c->log->error("failed to create reseller: $e"); # TODO: user, message, trace, ...
$self->error($c, HTTP_INTERNAL_SERVER_ERROR, "Failed to create reseller.");

@ -109,35 +109,24 @@ sub create :Chained('list_reseller') :PathPart('create') :Args(0) :Does(ACL) :AC
NGCP::Panel::Utils::Reseller::create_email_templates( c => $c, reseller => $reseller );
my $resource = $form->values;
$resource->{rtc_networks} = [qw/sip xmpp webrtc conference/];
eval {
NGCP::Panel::Utils::Rtc::modify_reseller_rtc(
resource => $resource,
config => $c->config,
reseller_item => $reseller,
err_code => sub {
my ($msg, $debug) = @_;
$c->log->debug($debug) if $debug;
$c->log->warn($msg);
die $msg,"\n";
});
};
my $rtc_err = $@ // '';
NGCP::Panel::Utils::Rtc::modify_reseller_rtc(
resource => $resource,
config => $c->config,
reseller_item => $reseller,
err_code => sub {
my ($msg, $debug) = @_;
$c->log->debug($debug) if $debug;
$c->log->warn($msg);
die $msg,"\n";
});
delete $c->session->{created_objects}->{contract};
$c->session->{created_objects}->{reseller} = { id => $reseller->id };
if ($rtc_err) {
NGCP::Panel::Utils::Message::error(
c => $c,
desc => $c->loc(sprintf '%s (%s)',
'Reseller successfully updated', $rtc_err),
);
} else {
NGCP::Panel::Utils::Message::info(
c => $c,
desc => $c->loc('Reseller successfully created.'),
);
}
NGCP::Panel::Utils::Message::info(
c => $c,
desc => $c->loc('Reseller successfully created.'),
);
} catch($e) {
NGCP::Panel::Utils::Message::error(
c => $c,
@ -289,7 +278,7 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) :Does(ACL) :ACLDetachTo('/d
my $params = { $reseller->get_inflated_columns };
$params->{contract}{id} = delete $params->{contract_id};
$params = merge($params, $c->session->{created_objects});
$params->{enable_rtc} = $reseller->rtc_user;
$params->{enable_rtc} = !!$reseller->rtc_user;
$form->process(
posted => $posted,
params => $c->request->params,
@ -316,20 +305,18 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) :Does(ACL) :ACLDetachTo('/d
});
my $resource = $form->values;
$resource->{rtc_networks} = [qw/sip xmpp webrtc conference/];
eval {
NGCP::Panel::Utils::Rtc::modify_reseller_rtc(
old_resource => $params,
resource => $resource,
config => $c->config,
reseller_item => $reseller,
err_code => sub {
my ($msg, $debug) = @_;
$c->log->debug($debug) if $debug;
$c->log->warn($msg);
die $msg,"\n";
});
};
$rtc_err = $@ // '';
NGCP::Panel::Utils::Rtc::modify_reseller_rtc(
old_resource => $params,
resource => $resource,
config => $c->config,
reseller_item => $reseller,
err_code => sub {
my ($msg, $debug) = @_;
$c->log->debug($debug) if $debug;
$c->log->warn($msg);
die $msg,"\n";
},
);
if($reseller->status ne $old_status) {
NGCP::Panel::Utils::Reseller::_handle_reseller_status_change($c, $reseller);
@ -338,18 +325,11 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) :Does(ACL) :ACLDetachTo('/d
delete $c->session->{created_objects}->{contract};
delete $c->session->{edit_contract_id};
if ($rtc_err) {
NGCP::Panel::Utils::Message::error(
c => $c,
desc => $c->loc(sprintf '%s (%s)',
'Reseller successfully updated', $rtc_err),
);
} else {
NGCP::Panel::Utils::Message::info(
c => $c,
desc => $c->loc('Reseller successfully updated'),
);
}
NGCP::Panel::Utils::Message::info(
c => $c,
desc => $c->loc('Reseller successfully updated'),
);
} catch($e) {
NGCP::Panel::Utils::Message::error(
c => $c,
@ -384,7 +364,7 @@ sub terminate :Chained('base') :PathPart('terminate') :Args(0) :Does(ACL) :ACLDe
try {
$c->model('DB')->txn_do(sub {
my $old_status = $reseller->status;
my $old_enable_rtc = $reseller->rtc_user;
my $old_enable_rtc = !!$reseller->rtc_user;
$reseller->update({ status => 'terminated' });
NGCP::Panel::Utils::Rtc::modify_reseller_rtc(
old_resource => {status => $old_status, enable_rtc => $old_enable_rtc},
@ -480,7 +460,7 @@ sub create_defaults :Path('create_defaults') :Args(0) :Does(ACL) :ACLDetachTo('/
call_data => 1,
},
);
$defaults{admins}->{login} = $defaults{resellers}->{name} =~ tr/A-Za-z0-9//cdr,
$defaults{admins}->{login} = $defaults{resellers}->{name} =~ tr/A-Za-z0-9//cdr;
my $billing = $c->model('DB');
my %r;

@ -146,9 +146,8 @@ sub update_reseller {
});
};
my $rtc_err = $@ // '';
if ($rtc_err && $resource->{status} eq 'terminated') {
$self->error($c, HTTP_INTERNAL_SERVER_ERROR,
"Could not terminate rtc_user: $rtc_err");
if ($rtc_err) {
$self->error($c, HTTP_INTERNAL_SERVER_ERROR, "Could not modify rtc_user: $rtc_err");
return;
}

Loading…
Cancel
Save