JFIF$        dd7 

Viewing File: /usr/local/cpanel/scripts/transfer_in_progress

#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/transfer_in_progress            Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

package scripts::transfer_in_progress;

=encoding utf-8

=head1 NAME

transfer_in_progress

=head1 SYNOPSIS

    transfer_in_progress ( --serialize_output | --help )

This script will check if there is an active transfer session.

 Options:
    --help                      brief help message
    --serialize_output          encode output as JSON

=cut

use strict;

use Getopt::Long ();

use Cpanel::Exception              ();
use Cpanel::JSON                   ();
use Cpanel::LoadModule             ();
use Whostmgr::Transfers::SessionDB ();

use Try::Tiny;

if ( !caller() ) {
    my $serialize_output;
    my $help;

    Getopt::Long::Configure('pass_through');
    Getopt::Long::GetOptionsFromArray(
        [@ARGV],
        serialize_output => \$serialize_output,
        help             => \$help,
    );

    if ($help) {
        print _help();
        exit 0;
    }

    my $script_obj = scripts::transfer_in_progress->new();

    try {
        my $transfer_exists = $script_obj->active_transfer_exists();
        $script_obj->_handle_output( $transfer_exists, $serialize_output );
    }
    catch {
        die Cpanel::Exception::get_string($_) . "\n";
    };

    exit 0;
}

sub new {
    my $self = bless {}, __PACKAGE__;

    return $self;
}

=head1 METHODS

=over 4

=item B<active_transfer_exists>

A function that indicates if there is an active transfer session (one that is RUNNING or PAUSING).

This function returns 1 if there is an active transfer session and 0 if there isn't.

This function may die if there is any issue connecting to the database or getting the data
from the database.

=back

=cut

sub active_transfer_exists {
    my ($self) = @_;

    my $session_db = Whostmgr::Transfers::SessionDB->new();

    my $sessions = $session_db->list_session_details( [ 'RUNNING', 'PAUSING' ] );
    return 0 if !$sessions || !keys %$sessions;

    return 1;
}

sub _handle_output {
    my ( $self, $transfer_exists, $serialize_output ) = @_;

    if ($serialize_output) {
        print Cpanel::JSON::Dump(
            {
                transfer_exists => $transfer_exists,
            }
        ) . "\n";
    }
    else {
        if ($transfer_exists) {
            print "An active transfer exists.\n";
        }
        else {
            print "An active transfer does not exist.\n";
        }
    }

    return 1;
}

sub _help {
    my $msg = shift;

    my $val;
    open my $wfh, '>', \$val or die "Failed to open to a scalar: $!";

    Cpanel::LoadModule::load_perl_module('Pod::Usage');
    Pod::Usage::pod2usage(
        -exitval   => 'NOEXIT',
        -message   => $msg,
        -verbose   => 1,
        -noperldoc => 1,
        -output    => $wfh,
        -input     => '/usr/local/cpanel/scripts/transfer_in_progress.pod',
    );

    return $val;

}

1;
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg