X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=perl%2FAmanda%2FTaper%2FProtocol.pm;fp=perl%2FAmanda%2FTaper%2FProtocol.pm;h=89066ec91674f7cc6160ee7d46dea12a762d8fcb;hb=538ae376635af705ebcd686f3b4b7b72a6652985;hp=0000000000000000000000000000000000000000;hpb=11425c69eb58b6103beb68adc13912735ba36975;p=debian%2Famanda diff --git a/perl/Amanda/Taper/Protocol.pm b/perl/Amanda/Taper/Protocol.pm new file mode 100644 index 0000000..89066ec --- /dev/null +++ b/perl/Amanda/Taper/Protocol.pm @@ -0,0 +1,136 @@ +# Copyright (c) 2009, 2010 Zmanda Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 as published +# by the Free Software Foundation. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Contact information: Zmanda Inc., 465 S. Mathilda Ave., Suite 300 +# Sunnyvale, CA 94086, USA, or: http://www.zmanda.com + +=head1 NAME + +Amanda::Taper::Protocol + +=head1 DESCRIPTION + +This package is a component of the Amanda taper, and is not intended for use by +other scripts or applications. + +This package define the protocol between the taper and the driver, it is +used by L and L + +=cut + +use lib '@amperldir@'; +use strict; +use warnings; + +package Amanda::Taper::Protocol; + +use Amanda::IPC::LineProtocol; +use base "Amanda::IPC::LineProtocol"; + +use constant START_TAPER => message("START-TAPER", + format => [ qw( worker_name timestamp ) ], +); + +use constant PORT_WRITE => message("PORT-WRITE", + format => [ qw( worker_name handle hostname diskname level datestamp + dle_tape_splitsize dle_split_diskbuffer dle_fallback_splitsize dle_allow_split + part_size part_cache_type part_cache_dir part_cache_max_size + data_path ) ], +); + +use constant FILE_WRITE => message("FILE-WRITE", + format => [ qw( worker_name handle filename hostname diskname level datestamp + dle_tape_splitsize dle_split_diskbuffer dle_fallback_splitsize dle_allow_split + part_size part_cache_type part_cache_dir part_cache_max_size + orig_kb) ], +); + +use constant START_SCAN => message("START-SCAN", + format => [ qw( worker_name handle ) ], +); + +use constant NEW_TAPE => message("NEW-TAPE", + format => { + in => [ qw( worker_name handle ) ], + out => [ qw( handle label ) ], + }, +); + +use constant NO_NEW_TAPE => message("NO-NEW-TAPE", + format => { + in => [ qw( worker_name handle reason ) ], + out => [ qw( handle ) ], + } +); + +use constant FAILED => message("FAILED", + format => { + in => [ qw( worker_name handle ) ], + out => [ qw( handle input taper inputerr tapererr ) ], + }, +); + +use constant DONE => message("DONE", + format => { + in => [ qw( worker_name handle orig_kb ) ], + out => [ qw( handle input taper stats inputerr tapererr ) ], + }, +); + +use constant QUIT => message("QUIT", + on_eof => 1, +); + +use constant TAPER_OK => message("TAPER-OK", + format => [ qw( worker_name ) ], +); + +use constant TAPE_ERROR => message("TAPE-ERROR", + format => [ qw( worker_name message ) ], +); + +use constant PARTIAL => message("PARTIAL", + format => [ qw( handle input taper stats inputerr tapererr ) ], +); + +use constant PARTDONE => message("PARTDONE", + format => [ qw( handle label fileno kb stats ) ], +); + +use constant REQUEST_NEW_TAPE => message("REQUEST-NEW-TAPE", + format => [ qw( handle ) ], +); + +use constant PORT => message("PORT", + format => [ qw( worker_name handle port ipports ) ], +); + +use constant BAD_COMMAND => message("BAD-COMMAND", + format => [ qw( message ) ], +); + +use constant TAKE_SCRIBE_FROM => message("TAKE-SCRIBE-FROM", + format => [ qw( worker_name handle from_worker_name) ], +); + +use constant DUMPER_STATUS => message("DUMPER-STATUS", + format => [ qw( handle ) ], +); + +use constant CLOSE_VOLUME => message("CLOSE-VOLUME", + format => [ qw( worker_name ) ], +); + +1;