#!/usr/bin/env perl
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html

BEGIN
{
    $::XCATROOT =
        $ENV{'XCATROOT'} ? $ENV{'XCATROOT'}
      : -d '/opt/xcat'   ? '/opt/xcat'
      : '/usr';
}
use lib "$::XCATROOT/lib/perl";
use File::Basename;
use Getopt::Long;
use xCAT::MsgUtils;
use xCAT::Utils;
my $bname = basename($0);

#-----------------------------------------------------------------------------

=head1   copycerts

 This updates the service node with files necessary to access the
 database on the MasterNode and restarts the xcat daemon
 run from servicenode postinstall script

=cut

#-----------------------------------------------------------------------------

&copyCertstoSN;

exit 0;

#-----------------------------------------------------------------------------

=head3 copyCertstoSN

  Copy from the mounted /xcatpost/ directory to the MS /install/postscripts
  directory the /install/postscripts/ca  install/postscripts/cert and
  /install/postscripts/_xcat into the local file system.  These certificate are
  needed for the postresql and mysql db setup for the service node
  to be able to access
  the DB from the service node.

=cut

#-----------------------------------------------------------------------------
sub copyCertstoSN
{
    my $rc = 0;
    `touch /etc/xCATSN`;
    # get roots home directory
    my $homedir=xCAT::Utils->getHomeDir();
    if (-d "/xcatpost/_xcat")
    {
        if (!(-d "$homedir/.xcat"))
        {
            `mkdir -p $homedir/.xcat`;
            `chmod 0600 $homedir/.xcat`;
        }
        `cp -f -rp /xcatpost/_xcat/* $homedir/.xcat`;
        `chmod 0600 $homedir/.xcat/*`;
    }
    else
    {
        xCAT::MsgUtils->message('S',
                                "/xcatpost/_xcat directory does not exist\n");

    }
    if (-d "/xcatpost/ca")
    {
        if (!(-d "/etc/xcat"))
        {
            mkdir("/etc/xcat", 0755);
        }
        if (!(-d "/etc/xcat/ca"))
        {
            mkdir("/etc/xcat/ca", 0755);
        }
        if (!(-d "/etc/xcat/ca/certs"))
        {
            mkdir("/etc/xcat/ca/certs", 0755);
        }
        `cp -f -rp /xcatpost/ca/* /etc/xcat/ca`;
        `chmod 0600 /etc/xcat/ca/*`;
        `chmod 0600 /etc/xcat/ca/certs/*`;
    }
    else
    {
        xCAT::MsgUtils->message('S', "/xcatpost/ca directory does not exist\n");

    }
    if (xCAT::Utils->isAIX()) { 
      if (-d "/xcatpost/cert")
      {
        if (!(-d "/etc/xcat"))
        {
            mkdir("/etc/xcat", 0755);
        }
        if (!(-d "/etc/xcat/cert"))
        {
            mkdir("/etc/xcat/cert", 0755);
        }
        `cp -f -rp /xcatpost/_xcat/* /etc/xcat/cert`;
        `chmod 0600 /etc/xcat/cert/*`;
      }
      else
      {
        xCAT::MsgUtils->message('S', "/xcatpost/cert directory does not exist\n");
      }
    }
    return $rc;
}