void copyFile(String srcKeytabFilePath, String destKeytabFilePath)
      throws IOException, InterruptedException {

    ShellCommandUtil.Result result;

    // Create the parent directory if necessary (using sudo)
    File destKeytabFile = new File(destKeytabFilePath);
    result = ShellCommandUtil.mkdir(destKeytabFile.getParent(), true);
    if (!result.isSuccessful()) {
      throw new AmbariException(result.getStderr());
    }

    // Copy the file (using sudo)
    result = ShellCommandUtil.copyFile(srcKeytabFilePath, destKeytabFilePath, true, true);
    if (!result.isSuccessful()) {
      throw new AmbariException(result.getStderr());
    }
  }
Copies the specified source file to the specified destination path, creating any needed parent
directories.
<p>
This method is mocked in unit tests to avoid dealing with ShellCommandUtil in a mocked env.

@param srcKeytabFilePath  the source location of the ambari server keytab file
@param destKeytabFilePath the destination location of the ambari server keytab file
@throws IOException
@throws InterruptedException
@throws AmbariException
@see ShellCommandUtil#mkdir(String, boolean);
@see ShellCommandUtil#copyFile(String, String, boolean, boolean)
ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/ConfigureAmbariIdentitiesServerAction.java