def METHOD_NAME(self):
    actionable_domains = self._get_actionable_domains()
    now = datetime.datetime.now()
    logger.debug("Found {} domain(s) ({} actionable)".format(len(self._domains), len(actionable_domains)))
    if len(actionable_domains) > 0:
        for domain in actionable_domains:
            keyrollerdomain = self._domains[domain]
            if keyrollerdomain.state.is_rolling:
                try:
                    logger.info("Moving to step {} for {} roll".format(keyrollerdomain.current_step_name, keyrollerdomain.zone))
                    keyrollerdomain.step()
                except Exception as e:
                    logger.error("Unable to advance keyroll: {}".format(e))
            else:
                next_ksk_roll = keyrollerdomain.next_ksk_roll()
                next_zsk_roll = keyrollerdomain.next_zsk_roll()
                if next_zsk_roll is not None and next_zsk_roll <= now:
                    try:
                        logger.info("Starting {} {} keyroll for {} ({} algo)".format("pre-publish", "ZSK", keyrollerdomain.zone, keyrollerdomain.config.zsk_algo))
                        roll = PrePublishKeyRoll()
                        roll.initiate(keyrollerdomain.zone, keyrollerdomain.api, 'zsk', keyrollerdomain.config.zsk_algo)
                        keyrollerdomain.state.current_roll = roll
                        domainstate.to_api(keyrollerdomain.zone, keyrollerdomain.api, keyrollerdomain.state)
                    except Exception as e:
                        logger.error("Unable to start keyroll: {}".format(e))
                elif next_ksk_roll is not None and next_ksk_roll <= now:
                    try:
                        logger.info("Starting {} {} keyroll for {} ({} algo)".format("pre-publish", "KSK", keyrollerdomain.zone, keyrollerdomain.config.zsk_algo))
                        roll = PrePublishKeyRoll()
                        roll.initiate(keyrollerdomain.zone, keyrollerdomain.api, 'ksk', keyrollerdomain.config.ksk_algo)
                        keyrollerdomain.state.current_roll = roll
                        domainstate.to_api(keyrollerdomain.zone, keyrollerdomain.api, keyrollerdomain.state)
                    except Exception as e:
                        logger.error("Unable to start keyroll: {}".format(e))
    else:
        logger.info("No action taken")