From e98607775c3f0366c605c69953231c443db87eb0 Mon Sep 17 00:00:00 2001
From: Paul Belanger <paul.belanger@polybeacon.com>
Date: Fri, 26 Jul 2013 13:17:55 +0000
Subject: [PATCH] Invert modules.conf logic

Rather then autoloading everything, we explicitly load what we need.  I
find this give the user better control of what is installed by default.

Additionally, upstream (my) puppet modules will likely expect this.

Change-Id: Ib572c54053bd5b5f9a3a513f6f8696db87ea0864
Signed-off-by: Paul Belanger <paul.belanger@polybeacon.com>
---
 .../asterisk/manifests/function/customdir.pp  |  5 +-
 modules/asterisk/manifests/server/command.pp  |  2 +
 .../files/pbx/asterisk/modules.conf           | 88 +------------------
 3 files changed, 4 insertions(+), 91 deletions(-)

diff --git a/modules/asterisk/manifests/function/customdir.pp b/modules/asterisk/manifests/function/customdir.pp
index 9538bde928..494f020300 100644
--- a/modules/asterisk/manifests/function/customdir.pp
+++ b/modules/asterisk/manifests/function/customdir.pp
@@ -37,10 +37,7 @@ define asterisk::function::customdir(
     notify  => Exec["asterisk-module-reload-${name}"],
     purge   => true,
     recurse => true,
-    require => [
-      File[$basedir],
-      Service['asterisk'],
-    ]
+    require => File[$basedir],
   }
 }
 
diff --git a/modules/asterisk/manifests/server/command.pp b/modules/asterisk/manifests/server/command.pp
index 17bd984941..6496737165 100644
--- a/modules/asterisk/manifests/server/command.pp
+++ b/modules/asterisk/manifests/server/command.pp
@@ -183,8 +183,10 @@ class asterisk::server::command {
     refreshonly => true,
   }
 
+  # Force asterisk to restart to load / unload modules.
   exec { 'asterisk-module-reload-modules.conf':
     command     => '/bin/true',
+    notify      => Service['asterisk'],
     refreshonly => true,
   }
 
diff --git a/modules/openstack_project/files/pbx/asterisk/modules.conf b/modules/openstack_project/files/pbx/asterisk/modules.conf
index 1afc8b3f70..bc02dd44ee 100644
--- a/modules/openstack_project/files/pbx/asterisk/modules.conf
+++ b/modules/openstack_project/files/pbx/asterisk/modules.conf
@@ -1,89 +1,3 @@
-; The modules.conf file, used to determine which modules Asterisk should load (or
-; not load.
-;
 [modules]
-autoload=yes
-
-; Resource modules
-noload => res_speech.so
-noload => res_phoneprov.so
-noload => res_ael_share.so
-noload => res_clialiases.so
-noload => res_adsi.so
-noload => res_calendar.so
-noload => res_fax.so
-noload => res_smdi.so
-noload => res_timing_pthread.so
-
-; PBX modules
-noload => pbx_ael.so
-noload => pbx_dundi.so
-noload => pbx_realtime.so
-
-; Channel modules
-noload => chan_oss.so
-noload => chan_mgcp.so
-noload => chan_skinny.so
-noload => chan_phone.so
-noload => chan_agent.so
-noload => chan_unistim.so
-noload => chan_alsa.so
-noload => chan_dahdi.so
-noload => chan_multicast_rtp.so
-
 ; Application modules
-noload => app_nbscat.so
-noload => app_amd.so
-noload => app_minivm.so
-noload => app_zapateller.so
-noload => app_ices.so
-noload => app_sendtext.so
-noload => app_speech_utils.so
-noload => app_mp3.so
-noload => app_flash.so
-noload => app_getcpeid.so
-noload => app_setcallerid.so
-noload => app_adsiprog.so
-noload => app_forkcdr.so
-noload => app_sms.so
-noload => app_morsecode.so
-noload => app_followme.so
-noload => app_url.so
-noload => app_alarmreceiver.so
-noload => app_disa.so
-noload => app_dahdiras.so
-noload => app_senddtmf.so
-noload => app_sayunixtime.so
-noload => app_test.so
-noload => app_externalivr.so
-noload => app_image.so
-noload => app_dictate.so
-noload => app_festival.so
-noload => app_authenticate.so
-noload => app_cdr.so
-noload => app_celgenuserevent.so
-noload => app_chanisavail.so
-noload => app_channelredirect.so
-noload => app_db.so
-noload => app_directed_pickup.so
-noload => app_directory.so
-noload => app_dumpchan.so
-noload => app_meetme.so
-noload => app_page.so
-noload => app_parkandannounce.so
-noload => app_privacy.so
-noload => app_queue.so
-noload => app_transfer.so
-noload => app_voicemail.so
-noload => app_waitforring.so
-noload => app_waitforsilence.so
-noload => app_waituntil.so
-
-; CDR modules
-noload => cdr_csv.so
-noload => cdr_manager.so
-noload => cdr_syslog.so
-
-; CEL modules
-noload => cel_custom.so
-noload => cel_manager.so
+load => app_confbridge.so