So it looks like the VERY 1st user in our system has never logged in, so 
the krblaspwdchange property has never gotten set.  Is there a way to 
ignore when that field doesn't exist or is null?

Thanks,
Harry

On Friday, February 23, 2024 at 2:46:07 PM UTC-5 Todd Lewis wrote:

> The original problem is you're comparing 'NoneType' and 'str'. So, for at 
> least one of your principals there's no krblastpwdchange. You need to work 
> on the subset of data relevant to the comparison.
>
>
> On 2/23/24 2:09 PM, [email protected] wrote:
>
> I'm not including the entire playbook, but the URI module call where 
> user_show gets registered, then the debug statements: 
>
>   - name: Run user_show from IDM API using previously stored session cookie
>     ansible.builtin.uri:
>       url: "https://{{idmfqdn}}/ipa/session/json"; 
> <https://%7B%7Bidmfqdn%7D%7D/ipa/session/json>
>       method: POST
>       headers:
>         Cookie: "{{ login.set_cookie }}"
>         Referer: "https://{{idmfqdn}}/ipa"; 
> <https://%7B%7Bidmfqdn%7D%7D/ipa>
>         Content-Type: "application/json"
>         Accept: "application/json"
>       body_format: json
>       body: "{\"method\": \"user_show\",\"params\": [[ \"{{ item 
> }}\"],{\"all\": true,\"version\": \"{{ api_vers }}\"}]}"
>     register: user_show
>     loop: "{{ uid | json_query('[:10]') }}"
>
>
>   - name: Set expire date
>     ansible.builtin.set_fact:
>       expire_date: '{{ lookup(''pipe'', ''date -u --date="today + 10 days" 
> +%Y%m%d000000Z'') }}'
>
>   - name: Show expire date
>     ansible.builtin.debug:
>       msg: "{{ expire_date }}"
>
>   - name: Show user info
>     debug:
>       msg: "{{ user_show.results | 
> json_query('[*].json.result.result.{uid: uid[0], pwdchg: 
> krblastpwdchange[0].__datetime__}') }}"
>
> Thanks,
> Harry
> On Friday, February 23, 2024 at 1:58:04 PM UTC-5 Todd Lewis wrote:
>
>> Without showing us the expression you used in your debug's "msg:", this 
>> doesn't tell us anything.
>>
>>
>> On 2/23/24 1:05 PM, [email protected] wrote:
>>
>> Looks OK to me: 
>>
>> TASK [Show user info] 
>> **************************************************************************************************************************************************************************************
>> ok: [localhost] => {
>>     "msg": [
>>         {
>>             "pwdchg": "20210416141027Z",
>>             "uid": "user1"
>>         }
>>     ]
>> }
>>
>>
>> Thanks,
>> Harry
>> On Friday, February 23, 2024 at 12:13:07 PM UTC-5 Rowe, Walter P. (Fed) 
>> wrote:
>>
>>> {{ user_show.results | json_query('[*].json.result.result.{uid: uid[0], 
>>> pwdchg: krblastpwdchange[0].__datetime__}') }}
>>>
>>> I would display this info in a debug to see what the resulting data 
>>> stream looks like. Maybe the selectattr('pwdchg') is in inaccurate 
>>> reference to pwdchg?
>>>
>>>
>>> Walter
>>> --
>>> Walter Rowe, Division Chief
>>> Infrastructure Services Division
>>> Mobile: 202.355.4123 <(202)%20355-4123> 
>>>
>>> On Feb 23, 2024, at 12:09 PM, [email protected] <[email protected]> 
>>> wrote:
>>>
>>> Just pull out those fields from the returned user information.  I use 
>>> that in 2 or 3 other playbooks so I know that it works. 
>>>
>>> Thanks,
>>> Harry
>>>
>>> On Friday, February 23, 2024 at 11:53:04 AM UTC-5 Rowe, Walter P. (Fed) 
>>> wrote:
>>>
>>>> pwd_expire_soon: "{{ user_show.results | 
>>>> json_query('[*].json.result.result.{uid: uid[0], pwdchg: 
>>>> krblastpwdchange[0].__datetime__}') | selectattr('pwdchg', 'lessthan', 
>>>> 'expire_date') | list }}"
>>>>
>>>> What are you expecting this red portion to do? I don't think it is 
>>>> valid in json_query.
>>>>
>>>> Walter
>>>> --
>>>> Walter Rowe, Division Chief
>>>> Infrastructure Services Division
>>>> Mobile: 202.355.4123 <(202)%20355-4123> 
>>>>
>>>> On Feb 23, 2024, at 11:30 AM, [email protected] <[email protected]> 
>>>> wrote:
>>>>
>>>> I am trying to determine when user's password's are going to expire in 
>>>> the next 10 days.  After I traverse my FreeIPA users and store those users 
>>>> into a variable, I try to set a fact like so: 
>>>>   - name: Find users who's password will expire in the next 10 days
>>>>     set_fact:
>>>>       pwd_expire_soon: "{{ user_show.results | 
>>>> json_query('[*].json.result.result.{uid: uid[0], pwdchg: 
>>>> krblastpwdchange[0].__datetime__}') | selectattr('pwdchg', 'lessthan', 
>>>> 'expire_date') | list }}"
>>>>
>>>> When I run my playbook, I get the following error:
>>>>
>>>> fatal: [localhost]: FAILED! => {"msg": "Unexpected templating type 
>>>> error occurred on ({{ user_show.results | 
>>>> json_query('[*].json.result.result.{uid: uid[0], pwdchg: 
>>>> krblastpwdchange[0].__datetime__}') | selectattr('pwdchg', 'lessthan', 
>>>> 'expire_date') | list }}): '<' not supported between instances of 
>>>> 'NoneType' and 'str'. '<' not supported between instances of 'NoneType' 
>>>> and 
>>>> 'str'"}
>>>>
>>>> I can't seem to find what the issue is.  I originally  had '<' instead 
>>>> of 'lessthan' but got the same error.  Any ideas?
>>>>
>>>> Thanks,
>>>> Harry
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Ansible Project" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/ansible-project/a1131cb0-bc23-46bb-afbf-ca9ad6f4ce34n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/ansible-project/a1131cb0-bc23-46bb-afbf-ca9ad6f4ce34n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>>
>>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Ansible Project" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>>
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/ansible-project/c0b4de3d-50e2-4fff-85b1-0437076137dcn%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/ansible-project/c0b4de3d-50e2-4fff-85b1-0437076137dcn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ansible Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/ansible-project/f76c158f-1107-4d10-8977-12638128d056n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/ansible-project/f76c158f-1107-4d10-8977-12638128d056n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>>
>> -- 
>> Todd
>>
>> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
>
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/6c29210e-e854-414c-9007-13c37edb3265n%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/ansible-project/6c29210e-e854-414c-9007-13c37edb3265n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
> -- 
> Todd
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/1b25b6c1-cfae-4c87-b414-5f1d6c7e2c12n%40googlegroups.com.

Reply via email to