docs: def _execute_module(self, conn, tmp, module_name, args,
          async_jid=None, async_module=None, async_limit=None, inject=None):
  
          ''' runs a module that has already been transferred '''
  
          # hack to support fireball mode
          if module_name == 'fireball':
              args = "%s password=%s" % (args, base64.b64encode(str(utils.key_for_hostname(conn.host))))
              if 'port' not in args:
                  args += " port=%s" % C.ZEROMQ_PORT
  
          (remote_module_path, is_new_style, shebang) = self._copy_module(conn, tmp, module_name, args, inject)
  
          cmd_mod = ""
          if self.sudo and self.sudo_user != 'root':
              # deal with possible umask issues once sudo'ed to other user
              cmd_chmod = "chmod a+r %s" % remote_module_path
              self._low_level_exec_command(conn, cmd_chmod, tmp, sudoable=False)
  
          cmd = ""
          if not is_new_style:
              args = utils.template(self.basedir, args, inject)
              argsfile = self._transfer_str(conn, tmp, 'arguments', args)
              if async_jid is None:
                  cmd = "%s %s" % (remote_module_path, argsfile)
              else:
                  cmd = " ".join([str(x) for x in [remote_module_path, async_jid, async_limit, async_module, argsfile]])
          else:
              if async_jid is None:
                  cmd = "%s" % (remote_module_path)
              else:
                  cmd = " ".join([str(x) for x in [remote_module_path, async_jid, async_limit, async_module]])
  
          if not shebang:
              raise errors.AnsibleError("module is missing interpreter line")
  
          cmd = shebang.replace("#!","") + " " + cmd
          if tmp.find("tmp") != -1 and C.DEFAULT_KEEP_REMOTE_FILES != '1':
              cmd = cmd + "; rm -rf %s >/dev/null 2>&1" % tmp
          res = self._low_level_exec_command(conn, cmd, tmp, sudoable=True)
          return ReturnData(conn=conn, result=res['stdout'])