diff --git a/changelogs/fragments/1823-cloudfront_distribution_always_created_enabled.yml b/changelogs/fragments/1823-cloudfront_distribution_always_created_enabled.yml new file mode 100644 index 00000000000..473245dacca --- /dev/null +++ b/changelogs/fragments/1823-cloudfront_distribution_always_created_enabled.yml @@ -0,0 +1,2 @@ +bugfixes: + - cloudfront_distribution - now honours the ``enabled`` setting (https://github.com/ansible-collections/community.aws/issues/1823). diff --git a/plugins/modules/cloudfront_distribution.py b/plugins/modules/cloudfront_distribution.py index 447fd994ee6..1d9cd546c52 100644 --- a/plugins/modules/cloudfront_distribution.py +++ b/plugins/modules/cloudfront_distribution.py @@ -2009,8 +2009,8 @@ def validate_common_distribution_parameters(self, config, enabled, aliases, logg if alias not in aliases]) config['aliases'] = ansible_list_to_cloudfront_list(aliases) if logging is not None: - config['logging'] = self.validate_logging(logging) - config['enabled'] = enabled or config.get('enabled', self.__default_distribution_enabled) + config["logging"] = self.validate_logging(logging) + config["enabled"] = enabled if enabled is not None else config.get("enabled", self.__default_distribution_enabled) if price_class is not None: self.validate_attribute_with_allowed_values(price_class, 'price_class', self.__valid_price_classes) config['price_class'] = price_class diff --git a/tests/integration/targets/cloudfront_distribution/tasks/main.yml b/tests/integration/targets/cloudfront_distribution/tasks/main.yml index a6ac0571a2d..42a0b06b572 100644 --- a/tests/integration/targets/cloudfront_distribution/tasks/main.yml +++ b/tests/integration/targets/cloudfront_distribution/tasks/main.yml @@ -25,6 +25,12 @@ - set_fact: distribution_id: '{{ cf_distribution.id }}' + - name: ensure that default value of 'enabled' is 'true' + assert: + that: + - cf_distribution.changed + - cf_distribution.enabled + - name: ensure that default value of 'ipv6_enabled' is 'false' assert: that: @@ -282,8 +288,9 @@ wait: yes state: absent - - name: create distribution with tags + - name: create cloudfront distribution with tags and as disabled cloudfront_distribution: + enabled: false origins: - domain_name: "{{ resource_prefix }}2.example.com" id: "{{ resource_prefix }}2.example.com" @@ -296,6 +303,12 @@ - set_fact: distribution_id: '{{ cf_second_distribution.id }}' + - name: ensure that the value of 'enabled' is 'false' + assert: + that: + - cf_second_distribution.changed + - not cf_second_distribution.enabled + - name: ensure tags were set on creation assert: that: