1 #
   2 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
   3 # Use is subject to license terms.
   4 #
   5 
   6 #
   7 # BSD 3 Clause License
   8 #
   9 # Redistribution and use in source and binary forms, with or without
  10 # modification, are permitted provided that the following conditions
  11 # are met:
  12 #       - Redistributions of source code must retain the above copyright
  13 #         notice, this list of conditions and the following disclaimer.
  14 #
  15 #       - Redistributions in binary form must reproduce the above copyright
  16 #         notice, this list of conditions and the following disclaimer in
  17 #         the documentation and/or other materials provided with the
  18 #         distribution.
  19 #
  20 #       - Neither the name of Sun Microsystems, Inc. nor the
  21 #         names of its contributors may be used to endorse or promote products
  22 #         derived from this software without specific prior written permission.
  23 #
  24 # THIS SOFTWARE IS PROVIDED BY SUN MICROSYSTEMS, INC. "AS IS" AND ANY
  25 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  26 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  27 # DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY
  28 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  29 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES
  30 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  31 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  32 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  33 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  34 #
  35 
  36 #
  37 # This file contains all the sub routines for the 
  38 # MOVER interface methods. Each Method tests different
  39 # error conditions depending on the input file
  40 #
  41 #
  42 # Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  43 #
  44 
  45 use strict;
  46 use warnings;
  47 
  48 our $log_flag = 1;
  49 our $fs_name = $ENV{'NDMP_FS'};
  50 our $option = "cli";
  51 
  52 sub mover_abort_ise {
  53         my $interface = "mover_abort";
  54         my $error = "NDMP_ILLEGAL_STATE_ERR";
  55         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
  56         ndmp_execute::ndmp_execute_cli(\%args);
  57 }
  58 
  59 sub mover_abort_nae {
  60         my $interface = "mover_abort";
  61         my $error = "NDMP_NOT_AUTHORIZED_ERR";
  62         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
  63         ndmp_execute::ndmp_execute_cli(\%args);
  64 
  65 }
  66 sub mover_abort_nne {
  67         my $interface = "mover_abort";
  68         my $error = "NDMP_NO_ERR";
  69         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
  70         ndmp_execute::ndmp_execute_cli(\%args);
  71 }
  72 sub mover_close_nne {
  73         my $interface = "mover_close";
  74         my $error = "NDMP_NO_ERR";
  75         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
  76         ndmp_execute::ndmp_execute_cli(\%args);
  77 }
  78 sub mover_close_nae {
  79         my $interface = "mover_close";
  80         my $error = "NDMP_NOT_AUTHORIZED_ERR";
  81         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
  82         ndmp_execute::ndmp_execute_cli(\%args);
  83 }
  84 sub mover_close_ise {
  85         my $interface = "mover_close";
  86         my $error = "NDMP_ILLEGAL_STATE_ERR";
  87         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
  88         ndmp_execute::ndmp_execute_cli(\%args);
  89 }
  90 sub mover_connect_ce {
  91         my $interface = "mover_connect";
  92         my $error = "NDMP_CONNECT_ERR";
  93         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
  94         ndmp_execute::ndmp_execute_cli(\%args);
  95 }
  96 sub mover_connect_dnoe {
  97         my $interface = "mover_connect";
  98         my $error = "NDMP_DEVICE_NOT_OPEN_ERR";
  99         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 100         ndmp_execute::ndmp_execute_cli(\%args);
 101 
 102 }
 103 sub mover_connect_ise {
 104         my $interface = "mover_connect";
 105         my $error = "NDMP_ILLEGAL_STATE_ERR";
 106         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 107         ndmp_execute::ndmp_execute_cli(\%args);
 108 
 109 }
 110 sub mover_connect_nae {
 111         my $interface = "mover_connect";
 112         my $error = "NDMP_NOT_AUTHORIZED_ERR";
 113         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 114         ndmp_execute::ndmp_execute_cli(\%args);
 115 }
 116 sub mover_connect_nne {
 117         my $interface = "mover_connect";
 118         my $error = "NDMP_NO_ERR";
 119         my @conn_type = ("NDMP_ADDR_LOCAL","NDMP_ADDR_TCP");
 120         my $conn = "NDMP_ADDR_LOCAL";
 121         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'addr_type',$conn);
 122         foreach $conn (@conn_type) {
 123             $args{'addr_type'} = $conn;
 124             ndmp_execute::ndmp_execute_cli(\%args);
 125         }
 126 }
 127 sub mover_connect_pe {
 128         my $interface = "mover_connect";
 129         my $error = "NDMP_PERMISSION_ERR";
 130         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 131         ndmp_execute::ndmp_execute_cli(\%args);
 132 }
 133 sub mover_continue_nne {
 134         my $interface = "mover_continue";
 135         my $error = "NDMP_NO_ERR";
 136         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 137         ndmp_execute::ndmp_execute_cli(\%args);
 138 
 139 }
 140 sub mover_continue_ise {
 141         my $interface = "mover_continue";
 142         my $error = "NDMP_ILLEGAL_STATE_ERR";
 143         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 144         ndmp_execute::ndmp_execute_cli(\%args);
 145 }
 146 
 147 sub mover_continue_nae {
 148         my $interface = "mover_continue";
 149         my $error = "NDMP_NOT_AUTHORIZED_ERR";
 150         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 151         ndmp_execute::ndmp_execute_cli(\%args);
 152 }
 153 sub mover_continue_pe {
 154         my $interface = "mover_continue";
 155         my $error = "NDMP_PRECONDITION_ERR";
 156         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 157         ndmp_execute::ndmp_execute_cli(\%args);
 158 }
 159 sub mover_get_state_nae {
 160         my $interface = "mover_get_state";
 161         my $error = "NDMP_NOT_AUTHORIZED_ERR";
 162         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 163         ndmp_execute::ndmp_execute_cli(\%args);
 164 
 165 }
 166 sub mover_get_state_nne {
 167         my $interface = "mover_get_state";
 168         my $error = "NDMP_NO_ERR";
 169         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 170         ndmp_execute::ndmp_execute_cli(\%args);
 171 
 172 }
 173 sub mover_listen_dnoe {
 174         my $interface = "mover_listen";
 175         my $error = "NDMP_DEV_NOT_OPEN_ERR";
 176         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 177         ndmp_execute::ndmp_execute_cli(\%args);
 178 
 179 }
 180 sub mover_listen_iae {
 181         my $interface = "mover_listen";
 182         my $error = "NDMP_ILLEGAL_ARGS_ERR";
 183         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 184         ndmp_execute::ndmp_execute_cli(\%args);
 185 
 186 }
 187 sub mover_listen_ise {
 188         my $interface = "mover_listen";
 189         my $error = "NDMP_ILLEGAL_STATE_ERR";
 190         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 191         ndmp_execute::ndmp_execute_cli(\%args);
 192 
 193 }
 194 sub mover_listen_nae {
 195         my $interface = "mover_listen";
 196         my $error = "NDMP_NOT_AUTHORIZED_ERR";
 197         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 198         ndmp_execute::ndmp_execute_cli(\%args);
 199 
 200 }
 201 sub mover_listen_nne {
 202         my $interface = "mover_listen";
 203         my $error = "NDMP_NO_ERR";
 204         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 205         ndmp_execute::ndmp_execute_cli(\%args);
 206 }
 207 sub mover_listen_pe {
 208         my $interface = "mover_listen";
 209         my $error = "NDMP_PERMISSION_ERR";
 210         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 211         ndmp_execute::ndmp_execute_cli(\%args);
 212 
 213 }
 214 sub mover_read_iae {
 215         my $interface = "mover_read";
 216         my $error = "NDMP_ILLEGAL_ARGS_ERR";
 217         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 218         ndmp_execute::ndmp_execute_cli(\%args);
 219 
 220 }
 221 sub mover_read_ise {
 222         my $interface = "mover_read";
 223         my $error = "NDMP_ILLEGAL_STATE_ERR";
 224         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 225         ndmp_execute::ndmp_execute_cli(\%args);
 226 
 227 }
 228 sub mover_read_nae {
 229         my $interface = "mover_read";
 230         my $error = "NDMP_NOT_AUTHORIZED_ERR";
 231         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 232         ndmp_execute::ndmp_execute_cli(\%args);
 233 
 234 }
 235 sub mover_read_nne {
 236         my $interface = "mover_read";
 237         my $error = "NDMP_NO_ERR";
 238         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 239         ndmp_execute::ndmp_execute_cli(\%args);
 240 
 241 }
 242 sub mover_read_rip {
 243         my $interface = "mover_read";
 244         my $error = "NDMP_READ_IN_PROGRESS_ERR";
 245         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 246         ndmp_execute::ndmp_execute_cli(\%args);
 247 
 248 }
 249 sub mover_set_record_size_iae {
 250         my $interface = "mover_set_record_size";
 251         my $error = "NDMP_ILLEGAL_ARGS_ERR";
 252         my $record_size = 0;
 253         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'rec_size',$record_size);
 254         ndmp_execute::ndmp_execute_cli(\%args);
 255 }
 256 sub mover_set_record_size_ise {
 257         my $interface = "mover_set_record_size";
 258         my $record_size = 8192;
 259         my $error = "NDMP_ILLEGAL_STATE_ERR";
 260         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'rec_size',$record_size);
 261         ndmp_execute::ndmp_execute_cli(\%args);
 262 
 263 }
 264 sub mover_set_record_size_nae {
 265         my $interface = "mover_set_record_size";
 266         my $error = "NDMP_NOT_AUTHORIZED_ERR";
 267         my $record_size = 8192;
 268         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'rec_size',$record_size);
 269         ndmp_execute::ndmp_execute_cli(\%args);
 270 
 271 }
 272 sub mover_set_record_size_nne {
 273         my $interface = "mover_set_record_size";
 274         my $error = "NDMP_NO_ERR";
 275         my @rec_sizes = (1,8192,4294967294,4294967295);
 276         my $record_size=1;
 277         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'rec_size',$record_size);
 278         foreach my $rec_size (@rec_sizes) {
 279             $args{'rec_size'} = $rec_size;
 280             ndmp_execute::ndmp_execute_cli(\%args);
 281         }
 282 }
 283 sub mover_set_window_size_iae {
 284         my $interface = "mover_set_window_size";
 285         my $error = "NDMP_ILLEGAL_ARGS_ERR";
 286         my $win_size = 0;
 287         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'win_size',$win_size);
 288         ndmp_execute::ndmp_execute_cli(\%args);
 289 }
 290 sub mover_set_window_size_ise {
 291         my $interface = "mover_set_window_size";
 292         my $error = "NDMP_ILLEGAL_STATE_ERR";
 293          my $win_size = 8192;
 294         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'win_size',$win_size);
 295         ndmp_execute::ndmp_execute_cli(\%args);
 296 
 297 }
 298 sub mover_set_window_size_nae {
 299         my $interface = "mover_set_window_size";
 300         my $error = "NDMP_NOT_AUTHORIZED_ERR";
 301         my $win_size = 8192;
 302         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'win_size',$win_size);
 303         ndmp_execute::ndmp_execute_cli(\%args);
 304 
 305 }
 306 sub mover_set_window_size_nne {
 307         my $interface = "mover_set_window_size";
 308         my $error = "NDMP_NO_ERR";
 309         my @win_sizes = (1,8192,4294967294,4294967295);
 310         my $win_size = 1;
 311         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'win_size',$win_size);
 312         foreach my $window (@win_sizes) {
 313             $args{'win_size'} = $window;
 314             ndmp_execute::ndmp_execute_cli(\%args);
 315         }
 316 }
 317 sub mover_set_window_size_pce {
 318         my $interface = "mover_set_window_size";
 319         my $error = "NDMP_PRECONDITION_ERR";
 320         my $win_size = 8192;
 321         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error,'win_size',$win_size);
 322         ndmp_execute::ndmp_execute_cli(\%args);
 323 
 324 }
 325 sub mover_stop_ise {
 326         my $interface = "mover_stop";
 327         my $error = "NDMP_ILLEGAL_STATE_ERR";
 328         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 329         ndmp_execute::ndmp_execute_cli(\%args);
 330 
 331 }
 332 sub mover_stop_nae {
 333         my $interface = "mover_stop";
 334         my $error = "NDMP_NOT_AUTHORIZED_ERR";
 335         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 336         ndmp_execute::ndmp_execute_cli(\%args);
 337 }
 338 sub mover_stop_nne {
 339         my $interface = "mover_stop";
 340         my $error = "NDMP_NO_ERR";
 341         my %args = ('fs',$fs_name,'option',$option,'inf',$interface,'err',$error);
 342         ndmp_execute::ndmp_execute_cli(\%args);
 343 }
 344 1;