The aegir::extras class doesn't work to install hosting_tasks_extra, because it tries to use variables that no longer exist. The code:

class aegir::extras (
  $tasks_extra_version      = '6.x-2.0-alpha2',
  $registry_rebuild_version = '7.x-1.9',
  $aegir_version            = $aegir::defaults::api2_vers
  ) inherits aegir::defaults {

  drush::dl { 'registry_rebuild':
    version => $registry_rebuild_version,
  }

  drush::dl { 'provision_tasks_extra':
    version => $tasks_extra_version,
  }

  drush::dl { 'hosting_tasks_extra':
    version   => $tasks_extra_version,
    site_path => "${aegir::defaults::aegir_root}/hostmaster-${aegir_version}/sites/${aegir::defaults::frontend_url}",
  }

  drush::en { 'hosting_tasks_extra': }

}

This results in a puppet error:

err: /Stage[main]/Aegir::Extras/Drush::Dl[hosting_tasks_extra]/Drush::Run[drush-dl:hosting_tasks_extra]/Exec[drush-run:drush-dl:hosting_tasks_extra]/returns: change from notrun to 0 failed: Working directory '/var/aegir/hostmaster-/sites/false' does not exist

Comments

m.stenta’s picture

Status: Active » Needs review
ergonlogic’s picture

Status: Needs review » Needs work

The proposed fix will have the effect of downloading the module anew on each puppet run. Not the end of the world, since it'll be cached by Drush, but still not ideal.

The more general problem here is that unless we specify the site path, there's no way to tell puppet which directory was created by downloading the module (thus stopping it from trying to download it again.)

We could add an 'unless' clause to drush::dl that does something like:

drush ${site_alias} pm-list | grep ${name}

And similarly for drush::en:

drush ${site_alias} pm-list --status=enabled | grep ${name}
m.stenta’s picture

Do you think it would make sense to add those 'unless' commands to the Puppet Drush module itself?

ergonlogic’s picture

yes, in puppet-drush

m.stenta’s picture

Status: Needs work » Closed (fixed)

Merged these changes in and started a new issue to address #2: #2072901: Drush::dl and drush::en run every time puppet does