TT#59265 ccs importer: detect delta of imports

Change-Id: I9c6dcbffdc1611479bc365c8fbd38ee98d963d0d
changes/76/30276/4
Rene Krenn 6 years ago
parent 753aa4d390
commit baf0d3eebe

@ -5,7 +5,7 @@ use strict;
use threads::shared qw();
#use Encode qw();
use Encode qw();
use NGCP::BulkProcessor::Projects::Migration::UPCAT::Settings qw(
$provision_mta_subscriber_rownum_start
@ -264,6 +264,7 @@ sub import_ccs_subscriber {
next if (scalar @$row) == 0 or (scalar @$row) == 1;
$row = [ map { local $_ = $_; trim($_); $_; } @$row ]; #Encode::encode('utf8',Encode::decode('cp1252',$_));
my $record = NGCP::BulkProcessor::Projects::Migration::UPCAT::Dao::import::CcsSubscriber->new($row);
next unless _import_ccs_subscriber_check_cancelled($context,$record);
$record->{rownum} = $rownum;
my %r = %$record; my @row_ext = @r{@NGCP::BulkProcessor::Projects::Migration::UPCAT::Dao::import::CcsSubscriber::fieldnames};
if ($context->{upsert}) {
@ -321,6 +322,16 @@ sub import_ccs_subscriber {
}
sub _import_ccs_subscriber_check_cancelled {
my ($context,$subscriber) = @_;
my $comment = Encode::decode('utf8',$subscriber->{comment}) if defined $subscriber->{comment}; #mark as utf-8
if (defined $comment and $subscriber->{comment} =~ /k(\x{00dc}|\x{00fc})ndig/i) {
_warn($context,"$subscriber->{customer} $subscriber->{service_number} $subscriber->{comment}, skipping");
return 0;
}
return 1;
}
sub _import_ccs_subscriber_reset_delta {
my $upsert = 0;
if (NGCP::BulkProcessor::Projects::Migration::UPCAT::Dao::import::CcsSubscriber::countby_service_number() > 0) {

@ -1128,18 +1128,18 @@ sub _provision_ccs_susbcriber {
if ((scalar @$existing_billing_voip_subscribers) == 0) {
if (not $update_mode) {
_update_ccs_contact($context);
_update_contract($context);
#{
# lock $db_lock; #concurrent writes to voip_numbers causes deadlocks
#if ($imported_subscriber->{delta} eq
# $NGCP::BulkProcessor::Projects::Migration::UPCAT::Dao::import::CcsSubscriber::deleted_delta) {
# _info($context,$context->{prov_subscriber}->{username} . ': is deleted, and no active subscriber found');
#} else {
_update_ccs_contact($context);
_update_contract($context);
_update_subscriber($context);
_create_aliases($context);
_update_ccs_preferences($context);
_set_registrations($context);
_set_callforwards($context);
#}
_update_ccs_preferences($context);
_set_registrations($context);
_set_callforwards($context);
##todo: additional prefs, AllowedIPs, NCOS, Callforwards. still thinking wether to integrate it
##in this main provisioning loop, or align it in separate run-modes, according to the files given.
} else {
_warn($context,$context->{prov_subscriber}->{username} . ': no active billing subscribers found for updating, skipping');
}
@ -1463,14 +1463,6 @@ sub _provision_ccs_susbcriber_init_context {
my @service_numbers = ();
foreach my $subscriber (@$subscriber_group) {
$subscriber->{comment} = Encode::decode('utf8',$subscriber->{comment}) if defined $subscriber->{comment}; #mark as utf-8
#if ($subscriber->{comment} =~ /gek/i) {
# print "blah";
#}
if (defined $subscriber->{comment} and $subscriber->{comment} =~ /k(\x{00dc}|\x{00fc})ndig/i) {
#if (defined $subscriber->{comment} and $subscriber->{comment} =~ /k..ndig/i) {
_warn($context,"$subscriber->{customer} $subscriber->{service_number} $subscriber->{comment}, skipping");
next;
}
my $alias = {};
($alias->{cc},$alias->{ac},$alias->{sn}) = split_number($subscriber->{service_number});
$alias->{number} = $alias->{cc} . $alias->{ac} . $alias->{sn};
@ -1808,6 +1800,35 @@ sub _set_callforwards {
}
#sub _terminate_contract {
# my ($context,$contract_id) = @_;
#
# my $result = 0;
# my $contract_path = NGCP::BulkProcessor::RestRequests::Trunk::Customers::get_item_path($contract_id);
# eval {
# my $customer;
# if ($dry) {
# $customer = NGCP::BulkProcessor::RestRequests::Trunk::Customers::get_item($contract_id);
# } else {
# $customer = NGCP::BulkProcessor::RestRequests::Trunk::Customers::update_item($contract_id,{
# status => $NGCP::BulkProcessor::RestRequests::Trunk::Customers::TERMINATED_STATE,
# });
# }
# $result = (defined $customer ? 1 : 0);
# };
# if ($@ or not $result) {
# if ($skip_errors) {
# _warn($context,"($context->{rownum}) " . 'subscriber ' . $context->{cli} . ': could not ' . ($dry ? 'fetch' : 'terminate') . ' old contract ' . $contract_path);
# } else {
# _error($context,"($context->{rownum}) " . 'subscriber ' . $context->{cli} . ': could not ' . ($dry ? 'fetch' : 'terminate') . ' old contract ' . $contract_path);
# }
# } else {
# _info($context,"($context->{rownum}) " . 'subscriber ' . $context->{cli} . ': old contract ' . $contract_path . ($dry ? ' fetched' : ' terminated'));
# }
# return $result;
#
#}
sub _error {
my ($context,$message) = @_;

@ -102,6 +102,7 @@ scripterror(getscriptpath() . ' already running',getlogger(getscriptpath())) unl
my @TASK_OPTS = ();
my $tasks = [];
my $files = [];
my $check_task_opt = 'check';
push(@TASK_OPTS,$check_task_opt);
@ -154,6 +155,7 @@ sub init {
"dry" => \$dry,
"skip-errors" => \$skip_errors,
"force" => \$force,
"file=s" => $files,
); # or scripterror('error in command line arguments',getlogger(getscriptpath()));
$tasks = removeduplicates($tasks,1);
@ -311,7 +313,11 @@ sub import_mta_subscriber_task {
my ($messages) = @_;
my ($result,$warning_count) = (0,0);
eval {
($result,$warning_count) = import_mta_subscriber(@mta_subscriber_filenames);
if (scalar @$files) {
($result,$warning_count) = import_mta_subscriber(@$files);
} else {
($result,$warning_count) = import_mta_subscriber(@mta_subscriber_filenames);
}
};
my $err = $@;
my $stats = ": $warning_count warnings";
@ -416,7 +422,11 @@ sub import_ccs_subscriber_task {
my ($messages) = @_;
my ($result,$warning_count) = (0,0);
eval {
($result,$warning_count) = import_ccs_subscriber($ccs_subscriber_filename);
if (scalar @$files) {
($result,$warning_count) = import_ccs_subscriber($files->[0]);
} else {
($result,$warning_count) = import_ccs_subscriber($ccs_subscriber_filename);
}
};
my $err = $@;
my $stats = ": $warning_count warnings";

Loading…
Cancel
Save