troposphere icon indicating copy to clipboard operation
troposphere copied to clipboard

Prototype new auto-generation via the AWS resource specification file

Open markpeek opened this issue 6 years ago • 0 comments

DO NOT MERGE THIS CHANGE - this is a WIP

As mentioned in #1295, I'm prototyping ways to better auto-generate troposphere files from the AWS resource specification. This should then allow for more rapid turnaround of new change from the CloudFormation team.

This PR is a quick first pass at improving troposphere python files using the AWS resource specification file. The base file for each service say, foo.py, will be auto-generated. There is an override file, foo.yaml, to include validation and other changes into the base file. The validation routines are now moved into foo_validators.py as either class mixins or property validation functions.

The main change is scripts/gen.py to improve the auto-generated files. The two files that are auto-generated are troposphere/batch.py and troposphere/s3.py with corresponding yaml and validator files. Note: some of the S3 changes are breaking changes due to class naming differences.

make spec2
python scripts/gen.py --name batch CloudFormationResourceSpecification.json > troposphere/batch.py
python scripts/gen.py --name s3 CloudFormationResourceSpecification.json > troposphere/s3.py

I'd like to get feedback on the general direction of this technique (note: I know the code needs cleanup and handle some edge cases). @phobologic @axelpavageau @cmmeyer

markpeek avatar Jan 27 '19 01:01 markpeek