From 7c927b6614d0540d3f0f7c62adf7f4867412a9db Mon Sep 17 00:00:00 2001 From: Carlos Salguero Date: Wed, 26 Sep 2018 14:40:11 -0300 Subject: [PATCH] PXB-1615 WIP Updates for Percona XtraBackup Changes made should be working but to properly test them, I need to set up a development API with the new items for XtraBackup in the DB. --- lib/VersionCheck.pm | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/lib/VersionCheck.pm b/lib/VersionCheck.pm index b612dd04..e0df2e80 100644 --- a/lib/VersionCheck.pm +++ b/lib/VersionCheck.pm @@ -153,14 +153,16 @@ sub version_check { return; } PTDEBUG && _d('Using', $protocol); + my $url = $args{url} # testing + || $ENV{PERCONA_VERSION_CHECK_URL} # testing + || "$protocol://v.percona.com"; + PTDEBUG && _d('API URL:', $url); # Get list of programs to check from Percona. my $advice = pingback( instances => $instances_to_check, protocol => $protocol, - url => $args{url} # testing - || $ENV{PERCONA_VERSION_CHECK_URL} # testing - || "$protocol://v.percona.com", + url => $url, ); if ( $advice ) { PTDEBUG && _d('Advice:', Dumper($advice)); @@ -342,9 +344,14 @@ sub get_uuid { my $filename = $ENV{"HOME"} . $uuid_file; my $uuid = _generate_uuid(); - open(my $fh, '>', $filename) or die "Could not open file '$filename' $!"; - print $fh $uuid; - close $fh; + my $fh; + eval { + open($fh, '>', $filename); + }; + if (!$EVAL_ERROR) { + print $fh $uuid; + close $fh; + } return $uuid; } @@ -434,8 +441,9 @@ sub pingback { general_id => get_uuid(), ); + my $tool_name = $ENV{XTRABACKUP_VERSION} ? "Percona XtraBackup" : File::Basename::basename($0); my $client_response = { - headers => { "X-Percona-Toolkit-Tool" => File::Basename::basename($0) }, + headers => { "X-Percona-Toolkit-Tool" => $tool_name }, content => $client_content, }; PTDEBUG && _d('Client response:', Dumper($client_response)); @@ -528,6 +536,7 @@ my %sub_for_type = ( perl_version => \&get_perl_version, perl_module_version => \&get_perl_module_version, mysql_variable => \&get_mysql_variable, + xtrabackup => \&get_xtrabackup_version, ); sub valid_item { @@ -659,6 +668,10 @@ sub get_perl_version { return $version; } +sub get_xtrabackup_version { + return $ENV{XTRABACKUP_VERSION}; +} + sub get_perl_module_version { my (%args) = @_; my $item = $args{item};