Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'master' into WebGUI8.
  • Loading branch information
perlDreamer committed Jan 19, 2012
2 parents e97d84f + c35b2e5 commit 4ea362b
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 185 deletions.
2 changes: 2 additions & 0 deletions docs/changelog/7.x.x.txt
@@ -1,3 +1,5 @@
7.10.25

7.10.24
- fixed #12318: asset error causes asset manager to fail
- fixed #12308: error message used scalar as reference
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
183 changes: 0 additions & 183 deletions docs/upgrades/upgrade_7.10.23-7.10.24.pl

This file was deleted.

92 changes: 90 additions & 2 deletions sbin/findBrokenAssets.pl
Expand Up @@ -74,6 +74,7 @@ sub progress {
##Guarantee that we get the most recent revisionDate
my $max_revision = $session->db->prepare('select max(revisionDate) from assetData where assetId=?');

print "Checking all assets\n";
my $count = 1;
my %classTables; # Cache definition lookups
while ( my %row = $sth->hash ) {
Expand Down Expand Up @@ -204,6 +205,80 @@ sub progress {
} ## end while ( my %row = $sth->hash)
$sth->finish;
$max_revision->finish;
print "\n";

my $shortcuts = $session->db->quickScalar(q!select count(*) from asset where className='WebGUI::Asset::Shortcut'!);
if ($shortcuts) {
print "Checking for broken shortcuts\n";
my $get_shortcut = WebGUI::Asset::Shortcut->getIsa($session, 0, {returnAll => 1});
$count = 0;
SHORTCUT: while (1) {
my $shortcut = eval { $get_shortcut->() };
if ( $@ || Exception::Class->caught() ) {
##Do nothing, since it would have been caught above
printf "\r%-68s", "No shortcut to check";
}
elsif (!$shortcut) {
last SHORTCUT
}
else {
my $linked_asset = eval { WebGUI::Asset->newPending($session, $shortcut->get('shortcutToAssetId')); };
if ( $@ || Exception::Class->caught() || ! $linked_asset ) {
printf "\r%-68s", "-- Broken shortcut: ".$shortcut->getId.' pointing to '.$shortcut->get('shortcutToAssetId');
if ($delete) {
my $success = $shortcut->purge;
if ($success) {
print "Purged shortcut";
}
else {
print "Could not purge shortcut";
}
}
print "\n";
}
}
progress( $shortcuts, $count++ ) unless $no_progress;
}
progress( $shortcuts, $count ) unless $no_progress;
}

print "\n";

my $file_assets = $session->db->quickScalar(q!select count(*) from asset where className like 'WebGUI::Asset::File%'!);
if ($file_assets) {
print "Checking for broken File Assets\n";
my $get_asset = WebGUI::Asset::File->getIsa($session, 0, {returnAll => 1});
$count = 0;
FILE_ASSET: while (1) {
my $file_asset = eval { $get_asset->() };
if ( $@ || Exception::Class->caught() ) {
##Do nothing, since it would have been caught above
printf "\r%-68s", "No asset to check";
}
elsif (!$file_asset) {
last FILE_ASSET
}
else {
my $storage = $file_asset->getStorageLocation;
my $file = $storage->getPath($file_asset->get('filename'));
if (! -e $file) {
printf "\r%-s", "-- Broken file asset: ".$file_asset->getId." file does not exist: $file";
if ($delete) {
my $success = $file_asset->purge;
if ($success) {
print "Purged File Asset";
}
else {
print "Could not purge File Asset";
}
}
print "\n";
}
}
progress( $file_assets, $count++ ) unless $no_progress;
}
progress( $file_assets, $count ) unless $no_progress;
}

finish($session);
print "\n";
Expand Down Expand Up @@ -261,7 +336,20 @@ =head1 SYNOPSIS
=head1 DESCRIPTION
This utility will find any broken assets that cannot be instantiated and are
causing undesired operation of your website.
causing undesired operation of your website. It also checks for these kinds of
semi-working assets and reports them:
=over 4
=item *
Shortcuts pointing to assets that don't exist.
=item *
File assets that have lost their files in the uploads area.
=back
It can also automatically delete them or fix them so you can restore missing data.
Expand All @@ -283,7 +371,7 @@ =head1 OPTIONS
=item B<--fix>
Try to fix any corrupted assets.
Try to fix any corrupted assets. The broken Shortcuts and File Assets cannot be fixed.
=item B<--help>
Expand Down

0 comments on commit 4ea362b

Please sign in to comment.