#!/opt/CSCOpx/bin/perl ##################################################################### # Copyright (c) 1996-2004, 2014 Cisco Systems, Inc. # All Rights Reserved. # # Author: pborugad ##################################################################### use CRM; my $NMSROOT = $ENV{NMSROOT}; print "NMSROOT: $NMSROOT\n"; if (@ARGV != 3) { &usage(); } my $db=@ARGV[0]; my $uid=@ARGV[1]; my $pwd=@ARGV[2]; # check if Daemon Manager is running - it has to be down $dmstatus = &checkDM(); exit(-2) if ($dmstatus == -2); &stopDM() if ($dmstatus); my @dbname=("vms","cmf","rpt","aus"); #printf "$db \n"; $dbf = "$NMSROOT\\databases\\$db\\$db.db"; #dbunload -c "DBF=E:\CSCOpx\databases\vms\vms.db;UID=DBA;PWD=cisco" -ar $command="dbunload -c \"DBF=".$dbf.";UID=".$uid.";PWD=".$pwd."\" -ar"; $res = system("$command"); # Start the Daemon Manager $Daemon_Val = &startDM(); if ($Daemon_Val != 0) { print "\nUnable to start Daemon Manager"; exit(1); } #################################################################### # sub checkDM() - To check whether the Daemon Manager is # running or not. # Returns # 0 - If it is not running. # 1 - If it is running. #################################################################### sub checkDM() { my ($rc, $line, @lines); $rc = open IN, "$ENV{NMSROOT}\\bin\\pdshow 2>&1 |"; if (!$rc) { &duo_print("ERROR: Could not execute pdshow.\n"); &duo_print("ERROR: Error encountered in Daemon Manager.\n"); return -2; } @lines = ; for $line (@lines) { if ($line =~ m/ERROR:\s+connect\s+to\s+dmgtd.*on\s+port\s+.+failed:/) { &duo_print("INFO: Cisco Prime processes are not running.\n"); close IN; return 0; } } close IN; return 1; } #################################################################### # sub stopDM() - To stop the Daemon Manager. #################################################################### sub stopDM() { &duo_print("\n\nINFO: Stopping Processes...\n"); system("/etc/init.d/dmgtd stop") if ($CRM::CRM_OS ne 'WIN'); system("net stop crmdmgtd") if ($CRM::CRM_OS eq 'WIN'); # logDMStat(); # InstallUtility::DeleteFile("${NMSROOT}${d}temp${d}Daemon.tmp"); } #################################################################### # sub startDM() - To start the Daemon Manager. #################################################################### sub startDM() { &duo_print("\n\nINFO: Starting Processes...\n"); my $cmd; $cmd = "/etc/init.d/dmgtd start" if ($CRM::CRM_OS ne 'WIN'); $cmd = "net start crmdmgtd" if ($CRM::CRM_OS eq 'WIN'); $Daemon_Val = system($cmd); return $Daemon_Val; # logDMStat(); # InstallUtility::DeleteFile("${NMSROOT}${d}temp${d}Daemon.tmp"); } #################################################################### # sub duo_print() - To print the messages. ############################################################# sub duo_print { #print STDERR "[".localtime()."] $_[0]"; print STDERR "$_[0]"; } sub usage { print "Usage: ReLoadDB.pl \n"; exit(-1); }