On Thu, 6 Feb 2020 20:37:37 +0530 Rakesh Parida <[email protected]> wrote:
> > I would like my o/p as below:
> > dp-steps-common-3.0.12 not equal to
> > dp-steps-common-3.0.15-1911280809_d103a.noarch
> > iam-service-default-3.1.37 is equal to
> > iam-service-default-3.1.37-1911141021_63e48.noarch
> > iam-python-common-1.0.1 not found in list2
> >
> >> > If the numbers of items in list is not equal is there way to compare:
> >> > suppose my lists are:
> >> > list1
> >> > "dp-steps-common-3.0.12",
> >> > "iam-python-common-1.0.1",
> >> > "iam-service-default-3.1.37"
> >> > list2:
> >> > "dp-steps-common-3.0.15-1911280809_d103a.noarch",
> >> > "iam-service-default-3.1.37-1911141021_63e48.noarch"
Sure. Transform the data first. For example
- set_fact:
my_pkgs: "{{ my_pkgs|default({})|
combine({pkg_name: {'list1': item, 'list2': pkg2}}) }}"
vars:
pkg_name: "{{ item.split('-')[:-1]|join('-') }}"
pkg2: "{{ list2|select('search', pkg_name)|list|first|default('') }}"
loop: "{{ list1 }}"
- debug:
var: my_pkgs
give
"my_pkgs": {
"dp-steps-common": {
"list1": "dp-steps-common-3.0.12",
"list2": "dp-steps-common-3.0.15-1911280809_d103a.noarch"
},
"iam-python-common": {
"list1": "iam-python-common-1.0.1",
"list2": ""
},
"iam-service-default": {
"list1": "iam-service-default-3.1.37",
"list2": "iam-service-default-3.1.37-1911141021_63e48.noarch"
}
}
Then the manipulation with the data is trivial. For example
- debug:
msg: |
{% if item.value.list2 %}
{% if item.value.list1 in item.value.list2 %}
{{ item.value.list1 }} is equal to {{ item.value.list2 }}
{% else %}
{{ item.value.list1 }} not equal to {{ item.value.list2 }}
{% endif %}
{% else %}
{{ item.value.list1 }} not found in list2
{% endif %}
loop: "{{ my_pkgs|dict2items }}"
gives you what you want
"msg": "iam-python-common-1.0.1 not found in list2\n"
"msg": "iam-service-default-3.1.37 is equal to
iam-service-default-3.1.37-1911141021_63e48.noarch\n"
"msg": "dp-steps-common-3.0.12 not equal to
dp-steps-common-3.0.15-1911280809_d103a.noarch\n"
HTH,
-vlado
--
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/20200206165704.67d900dd%40gmail.com.
pgphWm9z8mApg.pgp
Description: OpenPGP digital signature
