From 7b5c9d9fa617ecba814421d82efd1418153dbd95 Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Wed, 12 Sep 2018 05:35:50 +0200 Subject: [PATCH] TT#44095 set isolation level when creating contracts Change-Id: Ie7944be85ea60626050896988f49917249ccc3f5 --- lib/NGCP/Panel/Controller/API/Contracts.pm | 1 + lib/NGCP/Panel/Controller/API/Customers.pm | 1 + lib/NGCP/Panel/Controller/Contract.pm | 2 ++ lib/NGCP/Panel/Controller/Customer.pm | 1 + 4 files changed, 5 insertions(+) diff --git a/lib/NGCP/Panel/Controller/API/Contracts.pm b/lib/NGCP/Panel/Controller/API/Contracts.pm index 4cc1c06aa4..f4c1d4c0b3 100644 --- a/lib/NGCP/Panel/Controller/API/Contracts.pm +++ b/lib/NGCP/Panel/Controller/API/Contracts.pm @@ -131,6 +131,7 @@ sub GET :Allow { sub POST :Allow { my ($self, $c) = @_; + $c->model('DB')->set_transaction_isolation('READ COMMITTED'); my $guard = $c->model('DB')->txn_scope_guard; { my $schema = $c->model('DB'); diff --git a/lib/NGCP/Panel/Controller/API/Customers.pm b/lib/NGCP/Panel/Controller/API/Customers.pm index 68742e82d4..3bc7649391 100644 --- a/lib/NGCP/Panel/Controller/API/Customers.pm +++ b/lib/NGCP/Panel/Controller/API/Customers.pm @@ -202,6 +202,7 @@ sub GET :Allow { sub POST :Allow { my ($self, $c) = @_; + $c->model('DB')->set_transaction_isolation('READ COMMITTED'); my $guard = $c->model('DB')->txn_scope_guard; { my $schema = $c->model('DB'); diff --git a/lib/NGCP/Panel/Controller/Contract.pm b/lib/NGCP/Panel/Controller/Contract.pm index ef06b9b2e7..80121bae12 100644 --- a/lib/NGCP/Panel/Controller/Contract.pm +++ b/lib/NGCP/Panel/Controller/Contract.pm @@ -363,6 +363,7 @@ sub peering_create :Chained('peering_list') :PathPart('create') :Args(0) { if($posted && $form->validated) { try { my $schema = $c->model('DB'); + $schema->set_transaction_isolation('READ COMMITTED'); $schema->txn_do(sub { foreach(qw/contact billing_profile/){ $form->values->{$_.'_id'} = $form->values->{$_}{id} || undef; @@ -503,6 +504,7 @@ sub reseller_create :Chained('reseller_list') :PathPart('create') :Args(0) { if($posted && $form->validated) { try { my $schema = $c->model('DB'); + $schema->set_transaction_isolation('READ COMMITTED'); $schema->txn_do(sub { foreach(qw/contact billing_profile/){ $form->values->{$_.'_id'} = $form->values->{$_}{id} || undef; diff --git a/lib/NGCP/Panel/Controller/Customer.pm b/lib/NGCP/Panel/Controller/Customer.pm index b81da4a21e..070f57a728 100644 --- a/lib/NGCP/Panel/Controller/Customer.pm +++ b/lib/NGCP/Panel/Controller/Customer.pm @@ -202,6 +202,7 @@ sub create :Chained('list_customer') :PathPart('create') :Args(0) { if($posted && $form->validated) { try { my $schema = $c->model('DB'); + $schema->set_transaction_isolation('READ COMMITTED'); $schema->txn_do(sub { foreach(qw/contact billing_profile profile_package product subscriber_email_template passreset_email_template invoice_email_template invoice_template/){ $form->values->{$_.'_id'} = $form->values->{$_}{id} || undef;