Thursday, 15 December 2016

Script to create VLAN


#our $session = new Net::Telnet::Cisco(Timeout => 20,ErrMode => 'return');

sub FINAL_CHECK
{
my $session=$_[0];
               
$session->waitfor('/>/');

                my @outputs = $session->cmd("sh vlan");

                foreach $items (@outputs)
                        {
                        @hits = split(' ',$items);


                                        if(!defined $hits[0])
                                        {

                                        }
                                        elsif($hits[0] eq $vlan_number)

                                        {

                                                $vlaninfos[$aclCounters++] = $items;

                                        }


                        }

                        my $lens = $#vlaninfos;

                        if($lens ne 0)


                                        {

                                        exit_script(" CREATED VLAN SUCESSFULLY ",0);


}
                         else

                                {


                                exit_script(" UNABLE TO CREATE VLAN PLEASE CONTACT NETWORK ADMIN ",18);

                                }

}

sub CREATE_VLAN_SUB
{

my $session=$_[0];

               $session->waitfor('/*#/');

                        if($vlan_number =~ /^(\d+)/)
                        {

                        $session->cmd("vlan $vlan_number");

$session->waitfor('/(config-vlan)/');

                        $session->cmd("name $vlan_name");

                        $session->put( "\cZ" );

return $session;

                        }
                        else
                       {

exit_script(" Only numbers are allowed in vlan name=".$vlan_number,17);
                        }

}

sub CONF_TERMINAL
{

my $session=$_[0];

                $session->print($cmd);

                $session->print($ena_passwd);

                @patten_ch = $session->waitfor('/#/');

                        if(defined $patten_ch[1])
                               {
                                            if($patten_ch[1] =~ /#/)
                                            {

                                                logw("VALID ENABLE CREADENTIALS",1);

                                                $session->print("conf t");

                                                return $session;

                                            }
                               }

                        else

                        {

                        exit_script(" NOT A VALID ENABLE CREDENTIALS=".$ena_passwd,16);

                        }

}


sub VLAN_CHECK
{

my $session=CONN_DEVICE();

                my @output = $session->cmd("sh vlan | i $vlan_number");

                foreach $item (@output)
                        {
                   
                        @hit = split(' ',$item);


                                        if(!defined $hit[0])
                                        {

                                        }
                                        elsif($hit[0] eq $vlan_number)

                                        {

                                                $vlaninfo[$aclCounter++] = $item;

                                        }

                        }

                         my $len = $#vlaninfo;

                        if($len ge 0)

                                {
                                foreach $eachvlan (@vlaninfo)
                                        {

exit_script(" Vlan Alredy exists=".$eachvlan,15);

                                        }
                                }

                         else
                                {

logw("NO VLAN FOUND",1);

$session = &CONF_TERMINAL($session);

$session = &CREATE_VLAN_SUB($session);

$session = &FINAL_CHECK($session);

                                }
}



sub CONN_DEVICE
{


                my $session = new Net::Telnet::Cisco(Timeout => 20, ,ErrMode => 'return');

                $session->open($ip);

                $session->waitfor('/Username:/');

                $session->print($user_name);

                $session->print($passwd);

                our @patten_chk = $session->waitfor('/>/');

                        if(defined $patten_chk[1])
                               {
                                            if($patten_chk[1] =~ />/)
                                            {
                                                     #   print "Valid Creadentials ";

                                                        logw("Valid Creadentials",1);

                                                        return $session;


                                            }
                               }

                               else
                               {
                                      #  print "Not valid user credentials";

                                        exit_script("Unable to conn to device"." Possible root cause \n 1.Not valid credentials \n 2.Not valid device ip",13);
                               }

}



sub IP_VALIDATION
{

if($ip=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1<=255  && $2<=255 && $3<=255  &&$4<=255 )))

        {

logw("valid ip conn to device $ip ",1);

}

else

        {
exit_script("Not a Valid ip=".$ip,12);

        }

}

&IP_VALIDATION;

&VLAN_CHECK;

###################################################################

No comments:

Post a Comment

Git

1 git add ↳ It lets you add changes from the working directory into the staging area 2 git commit ↳ It lets you save a snapshot of currently...