Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New module: Add amazon cloudfront distribution module. (cloud/amazon/cloudfront_distribution) #24292

Closed
wants to merge 100 commits into from

Conversation

wilvk
Copy link
Contributor

@wilvk wilvk commented May 4, 2017

SUMMARY

This module allows the following cloudfront actions:

  • create distribution
  • update distribution
  • delete distribution
  • create streaming distribution
  • update streaming distribution
  • delete streaming distribution
  • tag a resource
  • untag a resource
  • generate a pre-signed cloudfront url from a PEM private key

I saw this as a gap item as the cloudfront_facts.py module already exists but not cloudfront.py.

Each action has a set of valid parameters that an be used in conjunction. These are illustrated in the examples section.

This PR also renames the class for cloudfront_facts.py as CloudfrontFactsManager as CloudfrontManager is more appropriate for this module.

ISSUE TYPE

New Module Pull Request

COMPONENT NAME

./lib/ansible/modules/cloud/amazon/cloudfront.py

ANSIBLE VERSION

ansible 2.3.0 (devel 652b4d220a) last updated 2017/04/30 23:12:22 (GMT +1100)
  config file =
  configured module search path = Default w/o overrides
  python version = 2.7.10 (default, Feb  6 2017, 23:53:20) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)]

ADDITIONAL INFORMATION

This PR is migrated from PR #24151 as the branch and PR comment history was irreparable and has thus been closed.

comments from @willthames:

create_streaming_distribution and delete_streaming_distribution and the other similarly named parameters are of concern - we should be stating the desired state of streaming_distribution (present or absent).

This feels like it should probably be multiple modules.

The use of tag_resource and untag_resource is problematic - just provide a tags: parameter and update tags accordingly

comments from @wilvk:

Thanks for the feedback @willthames ! I'll get onto those changes:

consolidate tag and untag into just tags:
use status parameter instead of create_distribution delete_distribution update_distribution duplicate_distribution validate_distribution etc.
could possibly be multiple modules but not sure how it should be split - distribution and streaming_distribution have dependencies/common methods. Am open to suggestions, however..

@wilvk wilvk mentioned this pull request May 4, 2017
@ansibot ansibot added affects_2.4 This issue/PR affects Ansible v2.4 aws cloud community_review In order to be merged, this PR must follow the community review workflow. module This issue/PR relates to a module. needs_triage Needs a first human triage before being processed. new_module This PR includes a new module. new_plugin This PR includes a new plugin. labels May 4, 2017
@ansibot
Copy link
Contributor

ansibot commented May 4, 2017

The test ansible-test sanity --test ansible-doc --python 2.6 failed with the following error:

Command "ansible-doc cloudfront cloudfront_facts" returned exit status 1.
>>> Standard Error
[ERROR]: unable to parse /root/src/github.com/ansible/ansible/lib/ansible/modu
les/cloud/amazon/cloudfront.py
ERROR! module cloudfront missing documentation (or could not parse documentation): Parsing produced an empty object.

The test ansible-test sanity --test ansible-doc --python 2.7 failed with the following error:

Command "ansible-doc cloudfront cloudfront_facts" returned exit status 1.
>>> Standard Error
[ERROR]: unable to parse /root/src/github.com/ansible/ansible/lib/ansible/modu
les/cloud/amazon/cloudfront.py
ERROR! module cloudfront missing documentation (or could not parse documentation): Parsing produced an empty object.

The test ansible-test sanity --test ansible-doc --python 3.5 failed with the following error:

Command "ansible-doc cloudfront cloudfront_facts" returned exit status 1.
>>> Standard Error
[ERROR]: unable to parse /root/src/github.com/ansible/ansible/lib/ansible/modu
les/cloud/amazon/cloudfront.py
ERROR! module cloudfront missing documentation (or could not parse documentation): Parsing produced an empty object.

The test ansible-test sanity --test ansible-doc --python 3.6 failed with the following error:

Command "ansible-doc cloudfront cloudfront_facts" returned exit status 1.
>>> Standard Error
[ERROR]: unable to parse /root/src/github.com/ansible/ansible/lib/ansible/modu
les/cloud/amazon/cloudfront.py
ERROR! module cloudfront missing documentation (or could not parse documentation): Parsing produced an empty object.

The test ansible-test sanity --test no-dict-iteritems failed with the following error:

Command "test/sanity/code-smell/no-dict-iteritems.sh" returned exit status 1.
>>> Standard Output
iteritems has been removed in python3.  Alternatives:
    for KEY, VALUE in DICT.items():
    from ansible.module_utils.six import iteritems ; for KEY, VALUE in iteritems(DICT):
./lib/ansible/modules/cloud/amazon/cloudfront.py:                key, value = item.iteritems().next()

The test ansible-test sanity --test pep8 failed with the following errors:

lib/ansible/modules/cloud/amazon/cloudfront.py:37:161: E501 line too long (226 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:41:161: E501 line too long (325 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:96:161: E501 line too long (163 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:114:161: E501 line too long (169 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:126:161: E501 line too long (172 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:225:161: E501 line too long (194 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:234:161: E501 line too long (197 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:252:161: E501 line too long (259 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:285:161: E501 line too long (193 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:359:161: E501 line too long (202 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:365:161: E501 line too long (328 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:374:161: E501 line too long (200 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:378:161: E501 line too long (243 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:382:161: E501 line too long (187 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:585:161: E501 line too long (299 > 160 characters)
lib/ansible/modules/cloud/amazon/cloudfront.py:611:1: E302 expected 2 blank lines, found 1
lib/ansible/modules/cloud/amazon/cloudfront.py:624:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:626:38: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:626:40: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:628:68: E202 whitespace before ')'
lib/ansible/modules/cloud/amazon/cloudfront.py:631:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:632:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:637:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:637:57: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:637:59: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:640:25: E123 closing bracket does not match indentation of opening bracket's line
lib/ansible/modules/cloud/amazon/cloudfront.py:644:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:645:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:650:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:654:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:655:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:660:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:660:57: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:660:59: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:663:25: E123 closing bracket does not match indentation of opening bracket's line
lib/ansible/modules/cloud/amazon/cloudfront.py:664:21: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:668:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:669:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:673:75: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:673:77: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:674:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:678:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:679:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:687:21: E201 whitespace after '{'
lib/ansible/modules/cloud/amazon/cloudfront.py:687:52: E202 whitespace before '}'
lib/ansible/modules/cloud/amazon/cloudfront.py:690:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:691:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:713:25: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:715:25: E123 closing bracket does not match indentation of opening bracket's line
lib/ansible/modules/cloud/amazon/cloudfront.py:717:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:721:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:722:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:726:63: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:726:65: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:727:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:731:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:732:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:737:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:737:23: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:737:25: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:741:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:742:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:750:25: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:752:25: E123 closing bracket does not match indentation of opening bracket's line
lib/ansible/modules/cloud/amazon/cloudfront.py:754:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:758:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:759:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:763:73: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:763:75: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:764:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:768:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:769:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:774:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:774:23: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:774:25: E251 unexpected spaces around keyword / parameter equals
lib/ansible/modules/cloud/amazon/cloudfront.py:778:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:779:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:784:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:788:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:793:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:797:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:820:1: E302 expected 2 blank lines, found 1
lib/ansible/modules/cloud/amazon/cloudfront.py:833:48: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:833:78: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:847:39: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:847:92: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:848:57: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:848:99: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:849:46: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:849:85: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:850:43: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:850:70: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:851:50: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:851:97: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:852:33: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:852:92: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:853:65: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:854:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:854:52: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:855:64: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:855:82: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:856:70: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:856:87: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:857:64: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:857:91: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:858:39: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:858:58: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:868:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:868:25: W503 line break before binary operator
lib/ansible/modules/cloud/amazon/cloudfront.py:870:29: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:887:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:894:32: E201 whitespace after '['
lib/ansible/modules/cloud/amazon/cloudfront.py:895:29: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:897:29: E123 closing bracket does not match indentation of opening bracket's line
lib/ansible/modules/cloud/amazon/cloudfront.py:897:30: E202 whitespace before ']'
lib/ansible/modules/cloud/amazon/cloudfront.py:902:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:922:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:927:33: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:946:29: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:951:29: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:956:29: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:961:29: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:963:25: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1012:29: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1015:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1017:21: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1025:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1029:29: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1031:29: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1038:33: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1041:33: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1042:33: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1044:21: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1049:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1084:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1097:73: E712 comparison to True should be 'if cond is True:' or 'if cond:'
lib/ansible/modules/cloud/amazon/cloudfront.py:1100:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1103:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1106:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1109:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1112:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1115:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1118:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1132:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1158:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1170:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1174:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1179:25: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1192:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1195:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1237:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1257:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1262:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1277:17: E123 closing bracket does not match indentation of opening bracket's line
lib/ansible/modules/cloud/amazon/cloudfront.py:1283:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1296:16: E111 indentation is not a multiple of four
lib/ansible/modules/cloud/amazon/cloudfront.py:1297:16: E111 indentation is not a multiple of four
lib/ansible/modules/cloud/amazon/cloudfront.py:1323:21: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1331:25: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1340:21: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1342:1: E302 expected 2 blank lines, found 1
lib/ansible/modules/cloud/amazon/cloudfront.py:1367:9: E301 expected 1 blank line, found 0
lib/ansible/modules/cloud/amazon/cloudfront.py:1384:9: E301 expected 1 blank line, found 0
lib/ansible/modules/cloud/amazon/cloudfront.py:1422:21: E126 continuation line over-indented for hanging indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1428:1: E302 expected 2 blank lines, found 1
lib/ansible/modules/cloud/amazon/cloudfront.py:1557:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1557:13: W503 line break before binary operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1563:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1563:13: W503 line break before binary operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1568:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1569:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1570:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1571:13: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1579:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1583:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1597:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1601:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1602:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1614:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1619:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1632:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1634:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1636:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1638:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1641:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1642:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1643:17: E128 continuation line under-indented for visual indent
lib/ansible/modules/cloud/amazon/cloudfront.py:1645:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1647:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1649:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1651:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1653:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1655:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1657:19: E201 whitespace after '{'
lib/ansible/modules/cloud/amazon/cloudfront.py:1657:45: E202 whitespace before '}'
lib/ansible/modules/cloud/amazon/cloudfront.py:1659:15: E225 missing whitespace around operator
lib/ansible/modules/cloud/amazon/cloudfront.py:1661:15: E225 missing whitespace around operator

The test ansible-test sanity --test validate-modules failed with the following errors:

lib/ansible/modules/cloud/amazon/cloudfront.py:38:19: E302 DOCUMENTATION is not valid YAML
lib/ansible/modules/cloud/amazon/cloudfront.py:468:5: E311 EXAMPLES is not valid YAML

click here for bot help

@ansibot ansibot added needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. and removed community_review In order to be merged, this PR must follow the community review workflow. labels May 4, 2017
@nitzmahone nitzmahone removed the needs_triage Needs a first human triage before being processed. label May 4, 2017
@mattclay mattclay added the ci_verified Changes made in this PR are causing tests to fail. label May 5, 2017
@ansibot ansibot removed the ci_verified Changes made in this PR are causing tests to fail. label May 5, 2017
@ansibot
Copy link
Contributor

ansibot commented May 6, 2017

@ansibot ansibot added community_review In order to be merged, this PR must follow the community review workflow. and removed needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. labels May 6, 2017
@ansibot
Copy link
Contributor

ansibot commented May 7, 2017

@wilvk This PR contains @ mentions in at least one commit message. Those mentions can cause cascading notifications through GitHub and need to be removed. Please squash or amend your commits to remove the mentions.

click here for bot help

@ansibot ansibot added needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. and removed community_review In order to be merged, this PR must follow the community review workflow. labels May 7, 2017
@wimnat
Copy link
Contributor

wimnat commented May 7, 2017

I don't see how this module can be idempotent as there's no state parameter. It's more procedural which is not really the ansible way.

You should have a purge_tags option if you're supporting tags to decide what to do with existing tags that aren't defined in the playbook.

@ansibot
Copy link
Contributor

ansibot commented May 7, 2017

@wilvk this PR contains the following merge comits:

Please rebase your branch to remove these commits.

click here for bot help

@ansibot ansibot added merge_commit This PR contains at least one merge commit. Please resolve! needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html labels May 7, 2017
@ansibot ansibot added community_review In order to be merged, this PR must follow the community review workflow. and removed merge_commit This PR contains at least one merge commit. Please resolve! needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. labels May 7, 2017
@jctanner
Copy link
Contributor

bot_skip

@wilvk
Copy link
Contributor Author

wilvk commented Jul 30, 2017

@s-hertel I've moved the cloudfront_facts class to the module_utils/aws path and all appears to be working, however, am now getting Shippable errors with trying to find botocore, which seems odd as this was working previously.

See below for an example of the Shippable output:

2017-07-30 10:17:11 ERROR: Found 1 import issue(s) on python 3.6 which need to be resolved:
2017-07-30 10:17:11 ERROR: lib/ansible/modules/cloud/amazon/cloudfront_distribution.py:541:0: ModuleNotFoundError: No module named 'botocore' (100%)
2017-07-30 10:17:11 ERROR: The 1 sanity test(s) listed below (out of 2) failed. See error output above for details.

@wilvk
Copy link
Contributor Author

wilvk commented Jul 31, 2017

ready_for_review

@wilvk
Copy link
Contributor Author

wilvk commented Aug 7, 2017

@jctanner is this PR triggering review requests with the bot skip tag? I requested a review a week ago with no response..

@s-hertel
Copy link
Contributor

s-hertel commented Aug 7, 2017

@wilvk I'm sorry, I've seen your request, just have too many things on my plate. I'll get back to this as soon as possible.

@willthames
Copy link
Contributor

I'd like to get this PR back on track as this would be a valuable module.

There needs to be a separation of the cloudfront_facts module from the cloudfront_distribution module.

Most of the shared module_utils.aws.cloudformation functionality is a reimplementation of snake_dict_to_camel_dict and camel_dict_to_snake_dict. If we need camel_to_snake or snake_to_camel, let's change module_utils.ec2

I'm not a huge fan of classes for modules (as in module_utils.aws.cloudfront_facts here) unless it's to provide an interface to multiple implementations (they were arguably useful for moving from rds to rds_v2).

As such, my way forward would be:

  • One PR for cloudfront_facts, without the class
  • One PR for cloudfront_distribution, without most of the shared library code

It might be worth having a combined shared library for all cloudfront modules, as module_utils.aws.cloudfront. I'd hope cloudfront_facts would be the easiest of the PRs to get through, so I'd start with that there.

@wilvk, let me know if that seems like a reasonable proposal and, if so, if you have the time to do it - if not, I can start looking at the improvements based on your existing work.

@wilvk
Copy link
Contributor Author

wilvk commented Oct 3, 2017

@willthames thanks for the feedback on this one - was a bit stuck on it. I'll have some time this weekend to look at it (still working on the ec2_ami tests stuff) otherwise feel free to start making the changes.

@gundalow
Copy link
Contributor

gundalow commented Dec 8, 2017

As agreed in 2017-12-07 Core meeting, we've done bulk pep8 fixes across all modules in devel.

This was done in #33682 and #33690 which have been merged into devel. because of this you will need to rebase your PR. Thanks in advance.

@ryansb
Copy link
Contributor

ryansb commented Dec 13, 2017

Closing in favor of #31284

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
affects_2.4 This issue/PR affects Ansible v2.4 aws c:module_utils/ ci_verified Changes made in this PR are causing tests to fail. cloud module This issue/PR relates to a module. needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. new_module This PR includes a new module. new_plugin This PR includes a new plugin. support:community This issue/PR relates to code supported by the Ansible community. support:core This issue/PR relates to code supported by the Ansible Engineering Team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet