From 3911846ce8f24a27bcf1caec67272ac4a57882af Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Thu, 9 Jul 2009 16:37:51 +0000 Subject: [PATCH] Better error handling for importing packages. --- docs/upgrades/_upgrade.skeleton | 9 ++++++++- docs/upgrades/upgrade_7.7.10-7.7.11.pl | 11 +++++++++-- docs/upgrades/upgrade_7.7.11-7.7.12.pl | 9 ++++++++- docs/upgrades/upgrade_7.7.12-7.7.13.pl | 9 ++++++++- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/docs/upgrades/_upgrade.skeleton b/docs/upgrades/_upgrade.skeleton index 39827f7d6..60222c641 100644 --- a/docs/upgrades/_upgrade.skeleton +++ b/docs/upgrades/_upgrade.skeleton @@ -58,7 +58,14 @@ sub addPackage { $storage->addFileFromFilesystem( $file ); # Import the package into the import node - my $package = WebGUI::Asset->getImportNode($session)->importPackage( $storage ); + my $package = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; + + if ($package eq 'corrupt') { + die "Corrupt package found in $file. Stopping upgrade.\n"; + } + if ($@ || !defined $package) { + die "Error during package import on $file: $@\nStopping upgrade\n."; + } # Turn off the package flag, and set the default flag for templates added my $assetIds = $package->getLineage( ['self','descendants'] ); diff --git a/docs/upgrades/upgrade_7.7.10-7.7.11.pl b/docs/upgrades/upgrade_7.7.10-7.7.11.pl index b09a27bdf..46f86652e 100644 --- a/docs/upgrades/upgrade_7.7.10-7.7.11.pl +++ b/docs/upgrades/upgrade_7.7.10-7.7.11.pl @@ -127,7 +127,14 @@ sub addPackage { $storage->addFileFromFilesystem( $file ); # Import the package into the import node - my $package = WebGUI::Asset->getImportNode($session)->importPackage( $storage ); + my $package = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; + + if ($package eq 'corrupt') { + die "Corrupt package found in $file. Stopping upgrade.\n"; + } + if ($@ || !defined $package) { + die "Error during package import on $file: $@\nStopping upgrade\n."; + } # Turn off the package flag, and set the default flag for templates added my $assetIds = $package->getLineage( ['self','descendants'] ); @@ -144,7 +151,7 @@ sub addPackage { $asset->update( $properties ); } - return; + return 1; } #------------------------------------------------- diff --git a/docs/upgrades/upgrade_7.7.11-7.7.12.pl b/docs/upgrades/upgrade_7.7.11-7.7.12.pl index aa236895b..52fea0c6d 100644 --- a/docs/upgrades/upgrade_7.7.11-7.7.12.pl +++ b/docs/upgrades/upgrade_7.7.11-7.7.12.pl @@ -102,7 +102,14 @@ sub addPackage { $storage->addFileFromFilesystem( $file ); # Import the package into the import node - my $package = WebGUI::Asset->getImportNode($session)->importPackage( $storage ); + my $package = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; + + if ($package eq 'corrupt') { + die "Corrupt package found in $file. Stopping upgrade.\n"; + } + if ($@ || !defined $package) { + die "Error during package import on $file: $@\nStopping upgrade\n."; + } # Turn off the package flag, and set the default flag for templates added my $assetIds = $package->getLineage( ['self','descendants'] ); diff --git a/docs/upgrades/upgrade_7.7.12-7.7.13.pl b/docs/upgrades/upgrade_7.7.12-7.7.13.pl index 2afb1cd7a..aedd6ac05 100644 --- a/docs/upgrades/upgrade_7.7.12-7.7.13.pl +++ b/docs/upgrades/upgrade_7.7.12-7.7.13.pl @@ -81,7 +81,14 @@ sub addPackage { $storage->addFileFromFilesystem( $file ); # Import the package into the import node - my $package = WebGUI::Asset->getImportNode($session)->importPackage( $storage ); + my $package = eval { WebGUI::Asset->getImportNode($session)->importPackage( $storage ); }; + + if ($package eq 'corrupt') { + die "Corrupt package found in $file. Stopping upgrade.\n"; + } + if ($@ || !defined $package) { + die "Error during package import on $file: $@\nStopping upgrade\n."; + } # Turn off the package flag, and set the default flag for templates added my $assetIds = $package->getLineage( ['self','descendants'] );