Puppet Module Usage Error


I am trying like heck to get icinga2 and icinga2web going with puppet. I hit a strange snag with icinga2 and the feature idomysql.

My Puppet code:

class profile::icinga2::icinga2 {

  include mysql::server

  mysql::db { 'icinga2':
    user     => 'icinga2',
    password => '***',
    host     => 'localhost',
    grant    => ['ALL'],
    require       => Class['::mysql::server'],

	mysql_user { 'icinga2@%':
    ensure        => 'present',
    password_hash => mysql_password('***'),
    require => Mysql::Db['icinga2'],

	mysql_grant { 'icinga2@%/*.*':
	 ensure     => 'present',
	 options    => ['GRANT'],
	 privileges => ['ALL PRIVILEGES'],
	 table      => '*.*',
	 user       => 'icinga2@%',
	 require    => Mysql_user['icinga2@%'],

  class { '::icinga2':
    manage_repo    => true,
    features => ['checker','mainlog', 'idomysql'],

  # config for icinga idomysql

  class { 'icinga2::feature::idomysql':
    # user          => "icinga2",
    password      => "***",
    # database      => "icinga2",
    # import_schema => true,
    require       => [Mysql::Db['icinga2'],Class['::icinga2']],

The error returned is:
Error: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Could not find resource ‘Concat[/etc/icinga2/features-available/ido-mysql.conf]’ in parameter ‘require’ (file: /etc/puppetlabs/code/environments/production/modules/icinga2/manifests/feature.pp, line: 28) on node icinga2

it seems like the feature is trying to get configured before the acutual class ‘icinga2’ work is done. However I would suspect that my require would prevent that from happening?

Any puppet folks lurking around here that could assist?

An Update:
When I just do:

  class { '::icinga2':
    manage_repo    => true,

The features-available directory lists:

    root@icinga2:/etc/icinga2/features-available# ls
    api.conf      command.conf    debuglog.conf       gelf.conf      influxdb.conf    mainlog.conf       opentsdb.conf  statusdata.conf
    checker.conf  compatlog.conf  elasticsearch.conf  graphite.conf  livestatus.conf  notification.conf  perfdata.conf  syslog.conf

But does not include ido-mysql.conf. Wondering if this is expected behavior.