def scatter_master_notifications(self):
        now = time.time()
        notifications = [a for a in self.actions.values()
                         if a.is_a == u'notification' and a.status == ACT_STATUS_SCHEDULED
                         and not a.contact and a.is_launchable(now)]
        if notifications:
            logger.debug("Scatter master notification: %d notifications",
                         len(notifications))
        for notification in notifications:
            logger.debug("Scheduler got a master notification: %s", notification)
            item = self.find_item_by_id(notification.ref)
            children = []
            notification_period = None
            if getattr(item, 'notification_period', None) is not None:
                notification_period = self.timeperiods[item.notification_period]
            if not item.is_blocking_notifications(notification_period,
                                                  self.hosts, self.services,
                                                  notification.type, now):
                children = item.scatter_notification(
                    notification, self.contacts, self.notificationways, self.timeperiods,
                    self.macromodulations, self.escalations,
                    self.find_item_by_id(getattr(item, "host", None))
                )
                for notif in children:
                    logger.debug(" - child notification: %s", notif)
                    notif.status = ACT_STATUS_SCHEDULED
                    self.add(notif)
            if notification.type == u'PROBLEM':
                if children:
                    item.current_notification_number = notification.notif_nb
                if item.notification_interval and notification.t_to_go is not None:
                    notification.t_to_go = item.get_next_notification_time(notification,
                                                                           self.escalations,
                                                                           self.timeperiods)
                    notification.notif_nb = item.current_notification_number + 1
                    logger.debug("Repeat master notification: %s", notification)
                else:
                    item.remove_in_progress_notification(notification)
                    logger.debug("Remove master notification (no repeat): %s", notification)
            else:
                logger.debug("Remove master notification (no more a problem): %s", notification)
                item.remove_in_progress_notification(notification)