enable passing grains to start event based on 'start_event_grains' configuration parameter

This commit is contained in:
Abid Mehmood 2019-08-01 13:14:22 +02:00
parent 4e0ba6e3c7
commit 6aedf5854f
4 changed files with 26 additions and 0 deletions

View file

@ -548,6 +548,11 @@
# - edit.vim
# - hyper
#
# List of grains to pass in start event when minion starts up:
#start_event_grains:
# - machine_id
# - uuid
#
# Top file to execute if startup_states is 'top':
#top_file: ''

View file

@ -1999,6 +1999,21 @@ List of states to run when the minion starts up if ``startup_states`` is set to
- edit.vim
- hyper
.. conf_minion:: start_event_grains
``start_event_grains``
----------------------
Default: ``[]``
List of grains to pass in start event when minion starts up.
.. code-block:: yaml
start_event_grains:
- machine_id
- uuid
.. conf_minion:: top_file
``top_file``

View file

@ -1253,6 +1253,7 @@ DEFAULT_MINION_OPTS = {
'state_top_saltenv': None,
'startup_states': '',
'sls_list': [],
'start_event_grains': [],
'top_file': '',
'thoriumenv': None,
'thorium_top': 'top.sls',

View file

@ -1447,6 +1447,11 @@ class Minion(MinionBase):
else:
return
if self.opts['start_event_grains']:
grains_to_add = dict(
[(k, v) for k, v in six.iteritems(self.opts.get('grains', {})) if k in self.opts['start_event_grains']])
load['grains'] = grains_to_add
if sync:
try:
self._send_req_sync(load, timeout)