From 445483f25a14c779f8cb5c8e024053a1ebe0bba8 Mon Sep 17 00:00:00 2001 From: lissav Date: Thu, 13 Feb 2014 07:48:02 -0500 Subject: [PATCH] put in wrong directory --- Zone.pm | 231 -------------------------------------------------------- 1 file changed, 231 deletions(-) delete mode 100644 Zone.pm diff --git a/Zone.pm b/Zone.pm deleted file mode 100644 index 93961ff92..000000000 --- a/Zone.pm +++ /dev/null @@ -1,231 +0,0 @@ -#!/usr/bin/env perl -# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html -package xCAT::Zone; - -BEGIN -{ - $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : '/opt/xcat'; -} - -# if AIX - make sure we include perl 5.8.2 in INC path. -# Needed to find perl dependencies shipped in deps tarball. -if ($^O =~ /^aix/i) { - unshift(@INC, qw(/usr/opt/perl5/lib/5.8.2/aix-thread-multi /usr/opt/perl5/lib/5.8.2 /usr/opt/perl5/lib/site_perl/5.8.2/aix-thread-multi /usr/opt/perl5/lib/site_perl/5.8.2)); -} - -use lib "$::XCATROOT/lib/perl"; -# do not put a use or require for xCAT::Table here. Add to each new routine -# needing it to avoid reprocessing of user tables ( ExtTab.pm) for each command call -use POSIX qw(ceil); -use File::Path; -use Socket; -use strict; -use Symbol; -use warnings "all"; - -#-------------------------------------------------------------------------------- - -=head1 xCAT::Zone - -=head2 Package Description - -This program module file, is a set of Zone utilities used by xCAT *zone commands. - -=cut - - -#-------------------------------------------------------------------------------- - -=head3 genSSHRootKeys - Arguments: - callback for error messages - directory in which to put the ssh RSA keys - zonename - rsa private key to use for generation ( optional) - Returns: - Error: 1 - key generation failure. - Example: - $rc =xCAT::Zone->genSSHRootKeys($callback,$keydir,$rsakey); -=cut - -#-------------------------------------------------------------------------------- -sub genSSHRootKeys -{ - my ($class, $callback, $keydir,$zonename,$rsakey) = @_; - - # - # create /keydir if needed - # - if (!-d $keydir) - { - my $cmd = "/bin/mkdir -m 700 -p $keydir"; - my $output = xCAT::Utils->runcmd("$cmd", 0); - if ($::RUNCMD_RC != 0) - { - my $rsp = {}; - $rsp->{error}->[0] = - "Could not create $keydir directory"; - xCAT::MsgUtils->message("E", $rsp, $callback); - return 1; - - } - } - - # - # create /install/postscripts/_ssh/zonename if needed - # - my $installdir = xCAT::TableUtils->getInstallDir(); # get installdir - if (!-d "$installdir/postscripts/_ssh/$zonename") - { - my $cmd = "/bin/mkdir -m 755 -p $installdir/postscripts/_ssh/$zonename"; - my $output = xCAT::Utils->runcmd("$cmd", 0); - if ($::RUNCMD_RC != 0) - { - my $rsp = {}; - $rsp->{error}->[0] = "Could not create $installdir/postscripts/_ssh/$zonename directory."; - xCAT::MsgUtils->message("E", $rsp, $callback); - return 1; - } - } - - #need to gen a new rsa key for root for the zone - my $pubfile = "$keydir/id_rsa.pub"; - my $pvtfile = "$keydir/id_rsa"; - - # if exists, remove the old files - if (-r $pubfile) - { - - my $cmd = "/bin/rm $keydir/id_rsa*"; - my $output = xCAT::Utils->runcmd("$cmd", 0); - if ($::RUNCMD_RC != 0) - { - my $rsp = {}; - $rsp->{error}->[0] = "Could not remove id_rsa files from $keydir directory."; - xCAT::MsgUtils->message("E", $rsp, $callback); - return 1; - } - } - - # gen new RSA keys - my $cmd; - my $output; - # if private key was input use it - if (defined ($rsakey)) { - $cmd="/usr/bin/ssh-keygen -y -f $rsakey > $pubfile"; - $output = xCAT::Utils->runcmd("$cmd", 0); - if ($::RUNCMD_RC != 0) - { - my $rsp = {}; - $rsp->{error}->[0] = "Could not generate $pubfile from $rsakey"; - xCAT::MsgUtils->message("E", $rsp, $callback); - return 1; - } - # now copy the private key into the directory - $cmd="cp $rsakey $keydir"; - $output = xCAT::Utils->runcmd("$cmd", 0); - if ($::RUNCMD_RC != 0) - { - my $rsp = {}; - $rsp->{error}->[0] = "Could not run $cmd"; - xCAT::MsgUtils->message("E", $rsp, $callback); - return 1; - } - } else { # generate all new keys - $cmd = "/usr/bin/ssh-keygen -t rsa -q -b 2048 -N '' -f $pvtfile"; - $output = xCAT::Utils->runcmd("$cmd", 0); - if ($::RUNCMD_RC != 0) - { - my $rsp = {}; - $rsp->{error}->[0] = "Could not generate $pubfile"; - xCAT::MsgUtils->message("E", $rsp, $callback); - return 1; - } - } - #make sure permissions are correct - $cmd = "chmod 644 $pubfile;chown root $pubfile"; - $output = xCAT::Utils->runcmd("$cmd", 0); - if ($::RUNCMD_RC != 0) - { - my $rsp = {}; - $rsp->{error}->[0] = "Could set permission and owner on $pubfile"; - xCAT::MsgUtils->message("E", $rsp, $callback); - return 1; - } - # copy authorized_keys for install on node - if (-r $pubfile) - { - my $cmd = - "/bin/cp -p $pubfile $installdir/postscripts/_ssh/$zonename "; - my $output = xCAT::Utils->runcmd("$cmd", 0); - if ($::RUNCMD_RC != 0) - { - my $rsp = {}; - $rsp->{error}->[0] = - "Could not copy $pubfile to $installdir/postscripts/_ssh/$zonename"; - xCAT::MsgUtils->message("E", $rsp, $callback); - return 1; - - } - } - else - { - my $rsp = {}; - $rsp->{error}->[0] = - "Could not copy $pubfile to $installdir/postscripts/_ssh/$zonename, because $pubfile does not exist."; - xCAT::MsgUtils->message("E", $rsp, $callback); - } -} -#-------------------------------------------------------------------------------- - -=head3 getdefaultzone - Arguments: - None - Returns: - Name of the current default zone from the zone table - Example: - my $defaultzone =xCAT::Zone->getdefaultzone(); -=cut - -#-------------------------------------------------------------------------------- -sub getdefaultzone -{ - my $defaultzone; - # read all the zone table and find the defaultzone, if it exists - my $tab = xCAT::Table->new("zone"); - my @zones = $tab->getAllAttribs('zonename','defaultzone'); - foreach my $zone (@zones) { - # Look for the defaultzone=yes/1 entry - if ((defined($zone->{defaultzone})) && ($zone->{defaultzone} =~ "yes")) { - $defaultzone = $zone->{zonename}; - } - } - $tab->close(); - return $defaultzone; -} -#-------------------------------------------------------------------------------- - -=head3 iszonedefined - Arguments: - zonename - Returns: - 1 if the zone is already in the zone table. - Example: - xCAT::Zone->iszonedefined($zonename); -=cut - -#-------------------------------------------------------------------------------- -sub iszonedefined -{ - my ($class,$zonename) = @_; - # checks the zone table to see if input zonename already in the table - my $tab = xCAT::Table->new("zone"); - my $zone = $tab->getAttribs({zonename => $zonename},'sshkeydir'); - $tab->close(); - if (defined($zone)) { - return 1; - }else{ - return 0; - } -} -1;