NAME
App::MBUtiny::Storage - App::MBUtiny storage class
VIRSION
Version 1.00
SYNOPSIS
use App::MBUtiny::Storage;
my $storage = new App::MBUtiny::Storage(
name => $name, # Backup name
host => $host, # Host config section
path => "/tmp/mbutiny/files", # Where is located backup archive
);
print $storage->error unless $storage->status;
DESCRIPTION
App::MBUtiny storage class
Storage - is a directory on disk, a remote FTP/SFTP/ HTTP server or CLI process that simulates storage functional.
new
my $storage = new App::MBUtiny::Storage(
name => $name, # Backup name
host => $host, # Host config section
path => "/tmp/mbutiny/files", # Where is located backup archive
fixup => sub {
my $strg = shift; # Storage object
my $oper = shift // 'noop'; # Operation name
my @args = @_;
return 1;
},
validate => sub {
my $strg = shift; # storage object
my $file = shift; # fetched file name
return 1;
},
);
Returns storage object
cleanup
$storage->cleanup();
Flushes errors and the status property to defaults
del
my $status = $storage->del("foo-2019-06-25.tar.gz");
Performs the "del" method in all storage subclasses
Returns summary status. See "summary"
error
print $storage->error("Foo"); # Foo
print $storage->error("Bar"); # Foo\nBar
print $storage->error; # Foo\nBar
print $storage->error(""); # <"">
Sets and gets the error pool
fixup
Callback the "fixup" method. This method called automatically when the put method performs
get
$st = $storage->get(
name => "foo-2019-06-25.tar.gz",
file => "/full/path/to/foo-2019-06-25.tar.gz",
);
Fetching backup file to specified file path from each storage until first successful result
Returns summary status. See "summary"
init
Performs the "init" method in all storage subclasses and returns self object instance
For internal use only
list
my @filelist = $storage->list;
Returns summary list of backup files from all available storages
put
$st = $storage->put(
name => "foo-2019-06-25.tar.gz",
file => "/full/path/to/foo-2019-06-25.tar.gz",
size => 123456,
);
Sending backup file to each available storage
Returns summary status. See "summary"
status
my $new_status = $storage->status(0);
Sets new status value and returns it
my $status = $storage->status;
Returns status value. 0 - Error; 1 - Ok
storage_status
$storage->storage_status(HTTP => 0);
my $storage_status = $storage->storage_status("HTTP");
Sets/gets storage status. For internal use only
summary
my $status = $storage->summary;
Returns summary status.
test
my $test = $storage->test or die $storage->error;
Performs testing each storage and returns summary status. See "summary"
test_report
foreach my $tr ($storage->test_report) {
my ($st, $vl, $er) = @$tr;
print STDOUT $vl, "\n";
print STDOUT $st ? $st < 0 ? 'SKIP' : 'PASS' : 'FAIL', "\n";
print STDERR $er, "\n";
);
}
Returns list of test result for each storage as:
[
[STATUS, NAME, ERROR],
# ...
]
validate
Callback the "validate" method. This method called automatically when the get method performs
This method can returns 0 or 1. 0 - validation failed; 1 - validation successful
HISTORY
See Changes
file
TO DO
See TODO
file
BUGS
* none noted
SEE ALSO
AUTHOR
Serż Minus (Sergey Lepenkov) http://www.serzik.com <abalama@cpan.org>
COPYRIGHT
Copyright (C) 1998-2019 D&D Corporation. All Rights Reserved
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See LICENSE
file and https://dev.perl.org/licenses/