Commit Graph

2691 Commits

Author SHA1 Message Date
pvbouwel
9ed613e197 Better DDB expressions support2: ExpressionTree
Part of structured approach for UpdateExpressions:
 1) Expression gets parsed into a tokenlist (tokenized)
 2) Tokenlist get transformed to expression tree (AST) -> This commit
 3) The AST gets validated (full semantic correctness)
 4) AST gets processed to perform the update

This commit uses the tokenlist to build an expression tree. This tree is not
yet used. Still it allows to raise additional Validation Exceptions which
previously were missed silently therefore it allows tests to catch these type of
ValidationException. For that reason DDB UpdateExpressions will be parsed
already. It also makes sure we won't break existing tests.

One of the existing tests had to be changed in order to still pass:
 - test_dynamodb_table_with_range_key.test_update_item_with_expression

This test passed in a numeric literal which is not supported by DynamoDB
and with the current tokenization it would get the same error as in AWS
DynamoDB.
2020-04-18 09:19:03 +01:00
pvbouwel
7ea419dd54 Better DDB expressions support1: TokenizationDDB
Currently the mock for DynamoDB has adhoc code to implement
its updateExpression functionality.  This series will
transform the logic such that Update Expressions are processed
as follows:
 1) Expression gets parsed into a tokenlist (tokenized) -> This commit
 2) Tokenlist get transformed to expression tree (AST)
 3) The AST gets validated (full semantic correctness)
 4) AST gets processed to perform the update

This alows for a more realistic mocking. It will throw exceptions much
more aggressively avoiding situations where a test passes against the
mock but fails with an exception when running against AWS.

Introduction of step 3 also allows to have the update expression as an
atomic unit of work. So updates at the start of the expression cannot
be performed if there is an error further down the expression.

This specific commit will tokenize expressions but the tokenlist is not
yet used. It is purely to keep clear boundaries.  It does do a minor
refactoring of the exceptions to allow more re-use and to ease testing.

This series of changes is to aid providing a long-term solution for
https://github.com/spulec/moto/issues/2806.
2020-04-18 09:16:23 +01:00
Mike Grima
bdeeeb701a
Merge pull request #2880 from bblommers/bugfix/2877
EC2 - Ensure NCI always has a Subnet
2020-04-16 15:02:45 -07:00
Hugo Lopes Tavares
4dc46a697d Bugfix: Allow stop_db_instance for compatible engines
From the RDS documentation:
    You can stop and start a DB instance whether it is configured for a single Availability Zone or for Multi-AZ, for database engines that support Multi-AZ deployments. You can't stop an Amazon RDS for SQL Server DB instance in a Multi-AZ configuration.

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html#USER_StopInstance.Limitations
2020-04-16 15:14:37 -04:00
Tim
92bbc3fbac Adds initial support for secretsmanager update_secret
The support in this patch is preliminary and may or may not be feature complete.
It provides the basic support for update_secret so that future work can build
on it as needed.
2020-04-16 08:20:43 -07:00
Bert Blommers
532480a3b5
Merge pull request #2888 from usmangani1/lstack#1991
Added implementation for create-model,get-models,get-model in api gat…
2020-04-14 10:34:39 +01:00
Bert Blommers
69f963a3c2 Linting 2020-04-14 08:06:00 +01:00
Bert Blommers
d0c60ecaac
Merge pull request #2891 from DenverJ/enhancement/autoscaling-standby-terminate
Implement enter_standby, exit_standby and terminate_instance_in_auto_scaling_group
2020-04-14 08:01:50 +01:00
Bert Blommers
b63a6f1336
Merge pull request #2884 from usmangani1/2263_Issue
Adding missing Param zoneId in the ec2 describe-availability-zone
2020-04-14 07:12:51 +01:00
DenverJ
d745dfd3d2 Implement enter_standby, exit_standby and terminate_instance_in_auto_scaling_group 2020-04-13 10:54:13 +10:00
usmankb
79e63e3bcf Added implementation for create-model,get-models,get-model in api gateway 2020-04-12 17:49:22 +05:30
Bert Blommers
755a08e137
Merge pull request #2887 from DenverJ/enhancement/fix-describe-autoscaling-instances-filter
Add instance-id filter to describe_auto_scaling_instances
2020-04-12 11:09:31 +01:00
DenverJ
965046aa39 Fix formatting 2020-04-12 17:08:40 +10:00
DenverJ
593e5dc86a Add instance-id filter to describe_auto_scaling_instances 2020-04-12 13:44:16 +10:00
usmankb
7a9cdd4fd2 Adding missing Param zoneId in the describe-availability-zone 2020-04-11 08:37:00 +05:30
Bert Blommers
48288d8bb1
Merge pull request #2878 from usmangani1/2187_Issue
Adding functionalities aws apigateway create domain name,get domain names,get domain name
2020-04-09 08:58:05 +01:00
Bert Blommers
1654280e43 Linting 2020-04-09 08:12:44 +01:00
usmankb
8542309fc9 conflicts 2020-04-08 22:00:48 +05:30
usmankb
af57cfc7ec Added more tests and coverage 2020-04-08 21:54:26 +05:30
Bert Blommers
414fcf7bbd Fix AvailibilityZones in CF tests 2020-04-08 15:14:39 +01:00
Bert Blommers
8475804a8b Simplify tests 2020-04-08 14:02:35 +01:00
Bert Blommers
5c7e0b56af #2877 - Ensure NetworkInterfaces are assigned to the default Subnet 2020-04-08 13:53:53 +01:00
Bert Blommers
8237fdaff0 Linting 2020-04-08 11:06:30 +01:00
Bert Blommers
3b9717d5b1
Merge pull request #2876 from tmwong2003/tmwong2003/ecs-run-task-support-default-cluster
Changed mock_ecs to support ecs.run_task calls with a default cluster
2020-04-08 07:53:27 +01:00
Theodore Wong
0163eb6a9d Changed mock_ecs to support ecs.run_task calls with a default cluster 2020-04-07 15:32:44 -07:00
usmankb
856c07de63 aws apigateway create,get domain names 2020-04-08 03:18:42 +05:30
Bert Blommers
aae49493c4 Linting 2020-04-07 08:52:37 +01:00
usmankb
81ca5c3ab0 Implemented describe_instance_credit_specifications function in ec2 #2150 localstack 2020-04-06 21:25:59 +05:30
jess
49fd7988ab make black happy 2020-04-06 19:55:54 +10:00
jess
4c2460ddfd fix whitespace changes 2020-04-06 18:45:23 +10:00
jess
b6e73776d5 alter testcase to trigger issue #2868 2020-04-06 18:41:46 +10:00
mickeypash
a6864f483d Use Python 2 format 2020-04-03 14:17:55 +01:00
mickeypash
d3367b8a90 Black formatting 2020-04-03 02:27:46 +01:00
mickeypash
76b9cbe16d Fix test 2020-04-03 02:14:14 +01:00
mickeypash
231b100057 Add test scaffold. Currently broken 2020-04-03 01:58:14 +01:00
Guilherme Martins Crocetti
503eeb51ae style with black 2020-04-01 22:48:40 -03:00
Guilherme Martins Crocetti
c25f6a72da refactor put_rule test 2020-04-01 22:14:51 -03:00
Guilherme Martins Crocetti
c15ca133b8 add support for Fn::GetAtt in event's cloudformation 2020-04-01 22:14:51 -03:00
Guilherme Martins Crocetti
af08d71310 add support for RetentionInDays for LogGroup 2020-04-01 22:14:41 -03:00
Mike Grima
0c191ac33b Raise errors on tagging buckets with aws:*
Cannot tag S3 buckets with reserved tag key space `aws:`
2020-03-30 17:27:06 -07:00
Andrea Amorosi
349b381390 Fixed dynamodb2 put_item ValidationException 2020-03-28 17:59:42 +00:00
Constantino Schillebeeckx
bb8d418054 fix: stepfunction stop_execution
Fixes #2846

Calling stop_execution on a stepfunction should set the status to `ABORTED` not `SUCCEEDED`.
2020-03-27 15:35:50 -05:00
Guilherme Martins Crocetti
788b8fb6e1 Add tests for Events::Rule integration with cf 2020-03-23 22:17:02 -03:00
Guilherme Martins Crocetti
98a17dfc46 Add test for boto3 integration 2020-03-22 18:03:42 -03:00
Guilherme Martins Crocetti
a1f664d2bb Change put_rule (and it's response) and fix tests_events/ 2020-03-22 17:33:44 -03:00
Guilherme Martins Crocetti
7318523b50 Add cloudformation support for EventBridge 2020-03-22 16:56:58 -03:00
gruebel
23dfecc845 Fix missing MessageAttributes when using RawMessageDelivery 2020-03-21 19:25:25 +01:00
Steve Pulec
94f85902bc
Merge pull request #2821 from bblommers/feature/2255
CloudFormation - Add Support for FN:Transform and AWS:Include
2020-03-19 19:40:46 -05:00
Steve Pulec
0903f6a4a2
Merge pull request #2820 from bblommers/bug/2264
SES - Parse email address on verification
2020-03-19 19:39:45 -05:00
Steve Pulec
14b2811157
Merge pull request #2819 from bblommers/dynamodb_global_index_ordering
Dynamodb - Global index ordering
2020-03-19 19:39:09 -05:00