community icon indicating copy to clipboard operation
community copied to clipboard

salt rendering

Open srikanth-2 opened this issue 3 years ago • 1 comments

I am experiencing an issue when trying to assign a value(icinga_ticket) on my post http query request. Have the fqdn value set from grain

Below is how it is defined in my state

{% set fqdn = salt'grains.get' %} {% set icinga_ticket = salt['http.query']('https://ticket-generator.az.dev.opd.com', method='POST', header_dict='{"Content-Type":"application/json"}', data='{"hostname": {{ fqdn }} }', backend='requests') %}

Error: Rendering SLS 'base:icinga.icinga2_core' failed: Jinja error: 'str' object does not support item assignment Traceback (most recent call last):

But when i execute the below command through cli it works fine.

salt-call http.query https://ticket-generator.az.dev.opd.com method=POST header_dict='{"Content-Type":"application/json"}' data="'{"hostname": "minion.node.dev.opd.com"}'" backend=requests local: ---------- body: {"icinga_ticket":"7609f6bc84d97748e15df9436aab07fbf48756d3"}

srikanth-2 avatar Apr 20 '21 20:04 srikanth-2

@srikanth-2 you need to fix a few things

{% set fqdn = salt['grains.get']('grain-here') %}
{% set data = { 'hostname':fqdn } %}
{% set icinga_ticket = salt['http.query']('https://ticket-generator.az.dev.opd.com', method='POST', header_dict='{"Content-Type":"application/json"}', data=data, backend='requests') %} 


mxrss2 avatar Apr 21 '21 23:04 mxrss2