'handler for package operations'

def run(self, tmp=None, task_vars=None):

    self._supports_check_mode = True
    self._supports_async = True
    result = super(ActionModule, self).run(tmp, task_vars)
    module = self._task.args.get('use', 'auto').lower()
    if (module == 'auto'):
        try:
            if self._task.delegate_to:
                module = self._templar.template(("{{hostvars['%s']['ansible_facts']['ansible_service_mgr']}}" % self._task.delegate_to))
            else:
                module = self._templar.template('{{ansible_facts["ansible_service_mgr"]}}')
        except:
            pass
    if (module == 'auto'):
        facts = self._execute_module(module_name='setup', module_args=dict(gather_subset='!all', filter='ansible_service_mgr'), task_vars=task_vars)
        self._display.debug(('Facts    %s' % facts))
        module = facts.get('ansible_facts', {}).get('ansible_service_mgr', 'auto')
    if ((not module) or (module == 'auto') or (module not in self._shared_loader_obj.module_loader)):
        module = 'service'
    if (module != 'auto'):
        new_module_args = self._task.args.copy()
        if ('use' in new_module_args):
            del new_module_args['use']
        if (('state' in new_module_args) and (new_module_args['state'] == 'running')):
            self._display.deprecated(msg='state=running    is    deprecated.    Please    use    state=started', version='2.7')
            new_module_args['state'] = 'started'
        if (module in self.UNUSED_PARAMS):
            for unused in self.UNUSED_PARAMS[module]:
                if (unused in new_module_args):
                    del new_module_args[unused]
                    self._display.warning(('Ignoring    "%s"    as    it    is    not    used    in    "%s"' % (unused, module)))
        self._display.vvvv(('Running    %s' % module))
        result.update(self._execute_module(module_name=module, module_args=new_module_args, task_vars=task_vars, wrap_async=self._task.async))
    else:
        result['failed'] = True
        result['msg'] = 'Could    not    detect    which    service    manager    to    use.    Try    gathering    facts    or    setting    the    "use"    option.'
    return result
