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.
