Разрабатывая специальный настраиваемый плагин (действие), как я могу сгенерировать общие данные для всех хостов? - PullRequest
0 голосов
/ 11 октября 2019

Я пишу пользовательский модуль с настраиваемым действием для роли.

Действие сгенерирует некоторые данные в dict с разумным количеством ключей / значений (скажем, 100), но это можетзанять одну или две секунды.

Эти ключи одинаковы для всех хостов, за исключением того, что не все хосты будут использовать все ключи (они могут пропустить один или два ключа).

Как можноЯ «кэширую» эти ключи / значения, чтобы они генерировались только один раз (из соображений производительности), а затем применялись ко всем хостам параллельно?

Я пытался создать переменную класса внутри ActionModule, но это, очевидно,метакласс, так что это будет отдельный объект класса для каждого вызова (я специально сказал «объект класса»)

class ActionModule(ActionBase):
    data = None

    def run(self, tmp=None, task_vars=None):
        if self.data is None:  # That is not thread safe, but just pretend
            self.data = "a lot of data here"  # just pretend again

        return self._execute_module(...)

Это решение будет генерировать data несколько раз, как описано выше, любые предложения о том, какой подход квзять?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...