# generate and deploy backupninja sshkeys
define backupninja::key(
  $user = $name,
  $createkey = false,
  $keymanage = $backupninja::keymanage,
  $keyowner = $backupninja::keyowner,
  $keygroup = $backupninja::keygroup,
  $keystore= $backupninja::keystore,
  $keystorefspath = $backupninja::keystorefspath,
  $keytype = $backupninja::keytype,
  $keydest = $backupninja::keydest,
  $keydestname = "id_${backupninja::keytype}" )
{

  # generate the key
  if $createkey == true {
    if $keystorefspath == false {
      err('need to define a destination directory for sshkey creation!')
    }
    $ssh_keys = ssh_keygen("${keystorefspath}/${keydestname}")
  }

  # deploy/manage the key
  if $keymanage == true {
    $keydestfile = "${keydest}/${keydestname}"
    ensure_resource('file', $keydest, {
      'ensure' => 'directory',
      'mode'   => '0700',
      'owner'  => $keyowner,
      'group'  => $keygroup
    })
    ensure_resource('file', $keydestfile, {
      'ensure'  => 'present',
      'source'  => "${keystore}/${user}_id_${keytype}",
      'mode'    => '0700',
      'owner'   => $keyowner,
      'group'   => $keygroup,
      'require' => File[$keydest],
    })
  }
}