Commit graph

103 commits

Author SHA1 Message Date
Brian Pandola
ae85c539fd Remove boto package dependency
The `boto` library (long ago superseded by `boto3`) has not had an official
release in over two years or even a commit in the last 18 months.  Importing
the package (or indirectly importing it by via `moto`) generates a deprecation
warning.  Additionally, an ever-increasing number of `moto` users who have
left `boto` behind for `boto3` are still being forced to install `boto`.

This commit vendors a very small subset of the `boto` library--only the code
required by `moto` to run--into the /packages subdirectory.  A README file
is included explaining the origin of the files and a recommendation for how
they can be removed entirely in a future release.

NOTE: Users of `boto` will still be able to use `moto` after this is merged.

closes #2978
closes #3013
closes #3170
closes #3418

relates to #2950
2020-11-26 23:59:15 -08:00
Brian Pandola
171130fe7b
Add support for CloudFormation resource AWS::StepFunctions::StateMachine (#3429)
Closes #3402

Co-authored-by: Bert Blommers <bblommers@users.noreply.github.com>
2020-11-02 11:53:03 +00:00
jweite
49d92861c0
Iam cloudformation update, singificant cloudformation refactoring (#3218)
* IAM User Cloudformation Enhancements: update, delete, getatt.

* AWS::IAM::Policy Support

* Added unit tests for AWS:IAM:Policy for roles and groups.  Fixed bug related to groups.

* AWS:IAM:AccessKey CloudFormation support.

* Refactor of CloudFormation parsing.py methods to simplify and standardize how they call to the models.  Adjusted some models accordingly.

* Further model CloudFormation support changes to align with revised CloudFormation logic.  Mostly avoidance of getting resoure name from properties.

* Support for Kinesis Stream RetentionPeriodHours param.

* Kinesis Stream Cloudformation Tag Support.

* Added omitted 'region' param to boto3.client() calls in new tests.

Co-authored-by: Joseph Weitekamp <jweite@amazon.com>
2020-08-27 10:11:47 +01:00
jweite
da07adae52
* Support for CloudFormation update and delete of Kinesis Streams (#3212)
* Support for CloudFormation stack resource deletion via backend resource method
  delete_from_cloudformation_json() via parse_and_delete_resource().
* Correction to the inappropriate inclusion of EndingSequenceNumber in open shards.
  This attribute should only appear in closed shards.  This regretfully prevents
  confirmation of consistent record counts after split/merge in unit tests.
* Added parameters/decorator to CloudFormationModel method declarations to calm-down Pycharm.

Co-authored-by: Joseph Weitekamp <jweite@amazon.com>
2020-08-03 16:04:05 +01:00
jweite
3342d49a43
S3 cloudformation update (#3199)
* First cut of S3 Cloudformation Update support: encryption property.

* Update type support for S3.  Abstract base class for CloudFormation-aware models, as designed by @bblommers, introduced to decentralize CloudFormation resource and name property values to model objects.

* Blackened...

* Un-renamed param in s3.models.update_from_cloudformation_json() and its call to stay compatible with other modules.

Co-authored-by: Bert Blommers <bblommers@users.noreply.github.com>
Co-authored-by: Joseph Weitekamp <jweite@amazon.com>
Co-authored-by: Bert Blommers <info@bertblommers.nl>
2020-08-01 22:43:03 +01:00
Adam Richie-Halford
9a9a1d8413
Decentralize cloudformation naming responsibilities (#3201)
* #3127 - Decentralize CF naming responsibilities

* Decentralize CloudFormation naming responsibilities

* Update URLs in cloudformation_resource_type functions

* Fix flake8 errors

* Black formatting

* Add a bunch of imports to populate CloudFormationModel.__subclasses__

* Add noqa to s3 models import statement in cloudformation/parsing.py

* Black formatting

* Remove debugging print statement

Co-authored-by: Bert Blommers <info@bertblommers.nl>
2020-08-01 15:23:36 +01:00
jweite
736c8b77ce
Fixed Failures in CloudFormation Provisioning of S3 Buckets When Stack has Long Name... (#3169)
* Fixed defect with CloudFormation provisioning of S3 buckets occuring when stack has a long name, resulting in the default S3 bucket name's length exceeding its 63 char limit.

* PR 3169 July 23, 2020 2:57a ET comment: added additional asserts to assure provisioned bucket's name complies.  Fixed bug in my earlier change that could produce default bucket names with illegal upper-case characters in it.

Co-authored-by: Joseph Weitekamp <jweite@amazon.com>
2020-07-29 07:47:18 +01:00
Adam Richie-Halford
766f527d37
Add NUMBER and LIST<NUMBER> parsing to cloudformation/parsing.py (#3118)
* Add NUMBER and LIST<NUMBER> parsing to cloudformation/parsing.py

* Fix black formatting error in test_stack_parsing.py
2020-07-11 08:43:45 +01:00
Bert Blommers
20784a2d67 Improve implementation coverage 2020-06-06 13:15:50 +01:00
Guilherme Martins Crocetti
e32a60185f
Cloudformation - EventBus support (#3052)
* add EventBus to model's map

* add support for creation of EventBus through cloudformation's api

* add cloudformation's delete

* add cloudformation's update

* add cloudformation's attribute
2020-06-06 11:31:14 +01:00
Jeremie Tharaud
90e200f0f6
Add missing changes when creating a change set (#3039)
* Display changes when creating a change set

* add change set id and description when describing stack

* fix lint with flake8 and black
2020-06-03 06:08:35 +01:00
Zach Brookler
80b64f9b3f
Cloud formation "depends_on" #2845 Add depends on and update name type mapping (#2994)
* ENH: Add unit test for cloudformation DependsOn

* ENH: Add implementation of retrieving list of resources that account for dependencies

* ENH: Update the name mappings so that they are consistent with the latest cloudformation names

* ENH: Add launch configuration to type names

* ENH: Create subnet for test and test creation with dependencies

* CLN: Code reformatting

* CLN: Remove print statements

* BUG: Fix error resulting in possible infinite loop

* CLN: Remove commented out fixture decorator

* BUG: Remove subnet creation

* CLN: Remove main and ec2 dependencies

* BUG: Add back in instance profile name type

* CLN: Remove print

* BUG: Fix broken unit test

* CLN: Code reformatting

* CLN: Remove main

* ENH: Add autoscaling group name to type names

* ENH: Add unit test for string only dependency and add assertions to unit tests

* ENH: Add unit test for chained depends_on in cloudformation stack

* BUG: Remove f strings for python 2.7 compatibility

* BUG: List needs to be sorted for python2.7

* CLN: Fix code formatting
2020-05-18 09:47:18 +01:00
Steve Pulec
229b3ec196
Merge pull request #2838 from bblommers/feature/2388
CloudFormation - CreateChangeSet should not create resources
2020-04-25 18:44:18 -05:00
Bert Blommers
04f488da62 #2388 - CloudFormation - CreateChangeSet does not create resources, as per spec 2020-03-24 10:22:08 +00:00
Guilherme Martins Crocetti
6180cf7a45 Fix blank space 2020-03-22 18:08:12 -03:00
Guilherme Martins Crocetti
7318523b50 Add cloudformation support for EventBridge 2020-03-22 16:56:58 -03:00
Bert Blommers
cbf0397953 #2255 - CF - Implement FN::Transform and AWS::Include 2020-03-18 13:02:07 +00:00
Asher Foa
374b623e1d Fix some 'DeprecationWarning: invalid escape sequence' warnings and use str.format for string interpolation.
I am seeing a lot of deperecation warnings when I use moto for my tests (running under pytest), so I figured I'll clean up some of them.
2020-03-12 13:50:59 -07:00
Mike Grima
0f67a74d25
Merge pull request #2624 from tirkarthi/fix-abc-warnings
Import ABC from collections.abc for Python 3.9 compatibility.
2019-12-17 08:42:28 -08:00
Karthikeyan Singaravelan
af853dc48f Fix linter errors. 2019-12-17 21:35:52 +05:30
Fabio Dias
fd9ac4b9a5 ACCOUNT_ID moved to moto.core, MOTO_ACCOUNT_ID env var override 2019-12-16 21:05:29 -05:00
Fabio Dias
b83a750630 Added references to moto.iam.models.ACCOUNT_ID instead of hardcoded id 2019-12-16 19:56:11 -05:00
Karthikeyan Singaravelan
882dfcefa5 Import ABC from collections.abc for Python 3.9 compatibility. 2019-12-10 19:21:13 +05:30
Asher Foa
96e5b1993d Run black on moto & test directories. 2019-10-31 10:36:05 -07:00
Adam Bruehl
7cc1afa25f ELBv2 LBs names must be 32 char or shorter 2019-06-26 11:56:17 -04:00
Koudai Aono
a61124f774 support to create dynamodb resource by cloudformation (#2219)
* support to create dynamodb resource by cloudformation
2019-05-25 10:16:33 +01:00
Craig Anderson
33efe07b43 Hide CloudFormation pararamters with NoEcho. Fixes #2021 (#2024) 2019-05-21 00:05:02 +01:00
Mark Challoner
337601b5fb
Add CloudFormation methods delete_change_set, describe_change_set and list_change_sets. 2019-01-21 17:18:50 +00:00
Justin McCormick
d60d562c62 Add AWS::Partition as a variable available to CloudFormation templates 2018-09-09 02:14:28 -04:00
William Richard
eb018c01a5
Handle edge case where you can end up with double dashes in target group names 2018-06-06 11:57:42 -04:00
William Richard
81381cd035
Correctly generate resource name for target groups when using cloudformation
They need to have less than 32 character names, so when you don't specify a name
cloudformation generates a name that is less than 32 characters.

And make sure that flake8 passes
2018-06-06 11:07:14 -04:00
Steve Pulec
cd59167fce
Merge pull request #1658 from tmwong2003/catch-missing-exports-in-import-value
Fixed CF creation to trap imports of non-existent values
2018-05-31 20:42:15 -04:00
Steve Pulec
6008d6b5b1 Add Cloudformation AWS::URLSuffix. Closes 1649. 2018-05-30 21:04:18 -04:00
Theodore Wong
da8bd545bf Fixed CF creation to trap imports of non-existent values 2018-05-30 11:59:25 -07:00
Barry Ruffner
1046ee5041 Added object to parsing and test server test for cognito. 2018-04-03 13:38:24 -07:00
Waldemar Hummer
da4a6fe616 implement Fn::GetAZs function in CloudFormation 2018-01-10 22:44:16 -05:00
William Richard
92f5f7b263 Add cloudformation update from s3 support (#1377)
* Fix variable name typo

* Make it possible to delete EC2 instances from cloudformation json

* Add support for updating a cloudformation stack from an s3 template url
2017-12-08 10:48:29 +00:00
Hugo Lopes Tavares
9804d7a963 Evaluate output values
Do not assume output values are string, evaluate them.
2017-10-27 15:31:45 -04:00
Hugo Lopes Tavares
7b074b50a9 Add CloudFormation support to AWS::ElasticLoadBalancingV2::Listener 2017-10-27 14:38:40 -04:00
Hugo Lopes Tavares
dfd41d8c00 Add CloudFormation support to AWS::ElasticLoadBalancingV2::TargetGroup 2017-10-27 14:24:11 -04:00
Hugo Lopes Tavares
8786c2df05 Add CloudFormation support to AWS::ElasticLoadBalancingV2::LoadBalancer 2017-10-27 11:54:55 -04:00
Terry Cain
453da4c8b3
Added CreateEnvironment to cloudformation 2017-10-20 00:51:04 +01:00
Waldemar Hummer
115b9cee3e add CloudFormation model for Kinesis streams 2017-07-20 14:37:53 +10:00
Jessie Nadler
f5106f2cc8 Add Fn::ImportValue support 2017-06-08 18:34:09 -04:00
Jessie Nadler
8e4c79625c Clean Export name and value before appending to exports 2017-06-08 18:34:09 -04:00
Jessie Nadler
d3faaad46b Add Fn::Sub support 2017-06-08 18:34:09 -04:00
Jessie Nadler
711dbaf4fd Simplify Fn::Join parsing 2017-06-08 15:22:16 -04:00
Jessie Nadler
a1549b04b4 Add Fn::Split and Fn::Select support 2017-06-08 15:22:05 -04:00
Steve Pulec
3d886aeadc Merge pull request #972 from nadlerjessie/add-exports
Add exports
2017-06-03 16:34:49 -04:00
Jessie Nadler
c0afcfade5 Use .items() not .iteritems() 2017-06-02 17:03:16 -04:00