From 94bd647bc0fc9d6c243cf5397035ef9d8b54a693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Kostka?= Date: Thu, 13 Apr 2017 20:27:48 +0200 Subject: [PATCH] Fix alarm action comparison (#23523) This fixes issue when list from module contains more than one element. Ansible and/or boto may put same elements in list in different order, thus resulting task as changed. Fixes #3310 --- lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py b/lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py index 2949c57630..5c23f5f734 100644 --- a/lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py +++ b/lib/ansible/modules/cloud/amazon/ec2_metric_alarm.py @@ -225,7 +225,9 @@ def create_metric_alarm(connection, module): for attr in ('alarm_actions','insufficient_data_actions','ok_actions'): action = module.params.get(attr) or [] - if getattr(alarm, attr) != action: + # Boto and/or ansible may provide same elements in lists but in different order. + # Compare on sets since they do not need any order. + if set(getattr(alarm, attr)) != set(action): changed = True setattr(alarm, attr, module.params.get(attr))