Commit Graph

1392 Commits

Author SHA1 Message Date
Steve Pulec
4d5642ae33 Cleanup dashboard. 2017-03-12 12:59:30 -04:00
Christian Hellman
c271e31745 Fixed terraform deploy against moto fails (#857) 2017-03-12 12:40:49 -04:00
Steve Pulec
09ac3539b7 Sort dashboard attributes. 2017-03-12 12:34:54 -04:00
Steve Pulec
6d422d1f37 Add BaseModel to all models. 2017-03-11 23:41:12 -05:00
Steve Pulec
caea5f441d Fix resetting backends. 2017-03-11 23:18:58 -05:00
Steve Pulec
abe0460dc7 Merge branch 'master' into dashboard 2017-03-11 22:45:45 -05:00
Steve Pulec
1709208872 First version of dashboard. 2017-03-11 22:45:42 -05:00
Steve Pulec
cdd6e476cc If using newer dynamodb api, use version 2. 2017-03-11 20:50:24 -05:00
Steve Pulec
3b4ef2cf15 Merge in master. 2017-03-05 09:58:39 -05:00
Matt Chamberlin
0393c384ad fix etag metadata field name in key response dict (etag --> ETag) (#855) 2017-03-04 23:17:18 -05:00
Andrew Garrett
e7735c3ee1 Add event IDs to CF Stack events (#852)
So that events can be uniquely identified.

I tried to match the format documented here:
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-listing-event-history.html
2017-03-04 23:12:55 -05:00
Andrew Garrett
e7ea6b350c Fix lambda stdout/stderr mocking (#851)
Originally, the code was setting sys.stdout and sys.stderr back to the
original, official forms, but this breaks idioms like mocking stdout to
capture printing output for tests. So instead, we will reset sys.stdout
and sys.stderr to what they were before running the lambda function, so
that in case someone is mocking stdout or stderr, their tests won't
break.
2017-03-04 23:01:50 -05:00
Andrew Garrett
f6465df630 Return CF Stack events in reverse chronological order (#853)
This is how the AWS API works:
http://boto3.readthedocs.io/en/latest/reference/services/cloudformation.html#CloudFormation.Client.describe_stack_events
2017-03-04 23:00:25 -05:00
Léo Cavaillé
9b6d3983d2 iam: add group policy methods (#849)
Implemented mocks for:
* get_all_group_policies
* list_group_policies (boto3)
* get_group_policy
* put_group_policy
2017-03-04 22:56:36 -05:00
Chris LaRose
56f9409ca9 Use request URL to generate SQS queue URLs; fixes #626 (#827) 2017-03-04 22:53:14 -05:00
William Richard
f46a24180f Cast desired capacity for cloudformation asg to int (#846)
Cloudformation passes MaxSize, MinSize and DesiredCapacity as strings, but
we want to store them as ints.  Also includes tests of this fix, to help
avoid regression.
2017-03-04 22:51:01 -05:00
David Wilcox
a9554924df make cloudformation update stack use parameters provided (#843) 2017-03-04 22:48:51 -05:00
Andy Freeland
783242b696 Elastic IP PhysicalResourceId should always be its public IP (#841)
According to the [CloudFormation `Ref` docs][docs], the `Ref` return
value (and physical ID of the resource) for an Elastic IP is its public
IP address.

[docs]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html
2017-03-04 22:40:43 -05:00
Andy Freeland
a30ba2b597 EC2 tags specified in CloudFormation should be applied to the instances (#840)
Fixes #839.
2017-03-04 22:37:53 -05:00
David Wilcox
1b6007e2b2 Correct IAM list_server_certs template that was based off incorrect docs (#836)
The documentation for this method is here https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListServerCertificates.html

The docs say the return type is this  ServerCertificateMetadataList.member.N

but the sample response incorrectly include a <ServerCertificateMetadata>. I've sent feedback to the AWS docs telling them to fix their stuff but this also needs to be fixed. I haven't checked other templates with <member> tags in them, as they may be prone to this same problem.
2017-03-04 22:36:25 -05:00
David Wilcox
8d737eb59d Route53: allow hosted zone id as well when creating record sets (#833)
* add test that creates r53 record set from hosted zone id (not name)

* pass test to enable creating record sets by hosted zone ids
2017-03-04 22:31:45 -05:00
Guy Templeton
7d75c3ba18 Feat: ECS container status updating (#831)
* Uptick boto3 version to version supporting ECS container instance state changes

* Add initial status update

* Only place tasks on active instances

* PEP8 cleanup
2017-03-04 22:30:36 -05:00
David Wilcox
bcc3e57949 Cloudformation ResourceMaps incorrectly share namespaces for Conditions and Resources (#828)
* add tests to check CF's conditions and resources have distinct namespace

* separate the resource and condition namespaces for CF
2017-03-04 22:26:23 -05:00
Steve Pulec
1287d53817 Fix tests for py26 and py3. 2017-02-27 20:53:57 -05:00
Steve Pulec
a22caf27ab Cleanup sns default topic. 2017-02-27 10:20:53 -05:00
Steve Pulec
b73360c187 Fix api gateway callback. 2017-02-23 22:34:43 -05:00
Steve Pulec
3c0c4c2996 Fix tests for py3. 2017-02-23 22:28:09 -05:00
Steve Pulec
0dda687762 Fix urlparse for py3. 2017-02-23 21:41:05 -05:00
Steve Pulec
f37bad0e00 Lints. 2017-02-23 21:37:43 -05:00
Steve Pulec
81836b6981 Get standalone server mode working for all tests. 2017-02-23 19:43:48 -05:00
Steve Pulec
cb28eeefbb Add moto reset API. 2017-02-20 18:25:10 -05:00
Steve Pulec
fe46b4c5b9 Remove extra line in test. 2017-02-20 15:50:49 -05:00
Steve Pulec
51df02e7cf Cleanup Server host parsing. 2017-02-20 14:31:19 -05:00
Steve Pulec
d0fe1a0956 Remove pdb. 2017-02-18 09:31:47 -05:00
Steve Pulec
6785d359d3 Cleanup apigateway callback. 2017-02-18 09:25:42 -05:00
Steve Pulec
480c1bba14 Add rest of deprecated decorators. 2017-02-18 09:24:09 -05:00
Steve Pulec
d28f083a0b Cleanup apigateway callback. 2017-02-18 09:19:08 -05:00
Steve Pulec
cad185c74d Cleanup headers and encoding. 2017-02-16 22:51:04 -05:00
Steve Pulec
678f73389f Fix package being submodule. 2017-02-15 22:45:20 -05:00
Steve Pulec
fde721bed7 Testing new version of decorator. 2017-02-15 22:35:45 -05:00
Steve Pulec
d3df810065 Generalize decorator code. 2017-02-12 00:22:29 -05:00
Steve Pulec
2d03182ae2 Migrate some sqs tests to boto3. 2017-02-11 19:41:09 -05:00
Jack Danger
53fbd7dca0 KMS encryption under Python 3 (#826)
This upgrades the KMS encrypt and decrypt endpoints to work
under both Python 2 and 3
2017-02-09 22:36:24 -05:00
David Wilcox
012dd497f2 make get_all_security_groups filter AND match group ids, not OR them (#822) 2017-02-08 21:29:37 -05:00
Jason DeTiberus
1045dca7b2 make instanceTenancy configurable for VPCs (#819)
* make instanceTenancy configurable for VPCs

* fix issue with setting tenenancy
2017-02-08 21:23:49 -05:00
Jeffrey Gelens
8fc1ad03bd Reload the server on a file change (#817)
* Added simple server reload support

* updated help text
2017-02-08 21:22:14 -05:00
Stefan Nordhausen
1a01bae74e Implement list_objects_v2() for S3 buckets (#814)
This adds/fixes the following things:
- Add missing KeyCount in result (fixes #734).
- Do not hard code MaxKeys to 1000.
- Truncate result if it has more than MaxKeys items. Set IsTruncated
    and NextContinuationToken accordingly.
- Support the StartAfter parameter.
- Return Owner information only when FetchOwner=True is given.
- "Prefix" in response is now "" instead of None when omitted in request.
- "Delimiter" is now omitted from response when not given in request.
2017-02-08 21:21:43 -05:00
Steve Pulec
ba7223f046 Fix issue for returning dynamodb floats. Closes #812. 2017-02-08 21:06:05 -05:00
Steve Pulec
4eaf5d527e 0.4.31 2017-01-24 09:48:31 -05:00
Hugo Lopes Tavares
88d5e36ffe Add resource IDs to ECS Cluster and Service models (#811) 2017-01-19 11:59:28 -05:00
Michael Nussbaum
51129f6ef3 Allow ELB policies to be set via Cloudformation. (#809)
Also more closely mirror AWS by not returning ELB
BackendServerDescriptions that don't have policies.

Signed-off-by: Michael Nussbaum <michael.nussbaum@getbraintree.com>
2017-01-18 23:02:04 -05:00
Jesse Szwedko
e1260bca06 cloudformation: Support RoleARN for create and update stack (#807)
Signed-off-by: Andrew Harris <andrew.harris@getbraintree.com>
2017-01-18 22:59:47 -05:00
Jesse Szwedko
f68b2963db sts: Implement get_caller_identity (#806)
Return a canned response

Signed-off-by: Andrew Harris <andrew.harris@getbraintree.com>
2017-01-18 22:59:04 -05:00
Jesse Szwedko
55f39265dd Upgrade to boto 2.45 (#803)
Adds support for additional regions:

* ca-central-1
* eu-west-2

Signed-off-by: Andrew Harris <andrew.harris@getbraintree.com>
2017-01-18 22:55:22 -05:00
Akhter Ali
2bf85fe25d Fix Route53 response and tests (#804)
* Fix route53 response \n Fix route53 tests

* Fixing index

* fix zone ID on test_route53_with_update
2017-01-18 21:40:04 -05:00
costypetrisor
a967ec0d39 made the Security Group backend throw the same error as AWS if the nb of sec groups limit is hit (#742)
* made the Security Group backend throw the same error as AWS if the security group limit is hit

* included in the security group limit the count of grants to other security groups & updated the unit tests to cover these

* refactored a few things about the sec group rule count limit
2017-01-18 21:37:55 -05:00
Jesse Szwedko
d42432bfef IAM: raise error if requiested instance profile does not exist (#802)
Signed-off-by: Andrew Harris <andrew.harris@getbraintree.com>
2017-01-18 21:36:50 -05:00
Steve Pulec
a292150087 Throw exception if same security group rule added twice. Closes #737. 2017-01-11 22:35:27 -05:00
Michael Nussbaum
74bbd9c8e5 Various RDS, RDS/Cloudformation, RDS/KMS improvements. (#789)
We need to mock out deploying RDS instances with full disk encryption
and detailed tagging. We also need to be able do deploy these instances
with Cloudformation, and then access them with both boto and boto3.

* Join RDS and RDS2 backends - this makes RDS resources created via
  either of the two boto RDS APIs visible to both, more closely
  mirroring how AWS works
* Fix RDS responses that were returning JSON but should be returning XML
* Add mocking of RDS Cloudformation calls
* Add mocking of RDS full disk encryption with KMS
* Add mocking of RDS DBParameterGroups
* Fix mocking of RDS DBSecurityGroupIngress rules
* Make mocking of RDS OptionGroupOptions more accurate
* Fix mocking of RDS cross-region DB replication
* Add RDS tag support to:
  * DBs
  * DBSubnetGroups
  * DBSecurityGroups

Signed-off-by: Andrew Garrett <andrew.garrett@getbraintree.com>
2017-01-11 21:02:51 -05:00
Steve Pulec
201efd5773 Fix bug with listing IAM users. 2017-01-11 20:54:47 -05:00
Jia Chen
2a02259a3c Adding PolicyType to scaling policy and implementing filtering in describe_policies (#797)
* Adding PolicyType to FakeScalingPolicy

* Implement filtering for AutoScalingBackend.describe_policies(...)

* Unit test for describe_policies fuction in autoscaling
2017-01-11 20:40:57 -05:00
Brian Kruger
f212d70104 Use a sane aws sender_id from SQS. (#791) 2017-01-11 20:38:55 -05:00
Taro Sato
02324ad708 Add more availability regions and implement default VPC (#773)
Fix filter name for availability zone

Fix bug assuming dict keys are ordered

Fix tests

Fix tests

Fix bug
2017-01-11 20:37:57 -05:00
Andrew Garrett
231d3cadcb Fix the CloudFormation ValidationError message (#788)
It should be a string, not a tuple, and it has a different form.
I'm not sure if it used to be different, but in the most recent
boto3/botocore, the message is "Stack with id {id} does not exist"

```python
>>> cf = boto3.client('cloudformation', region_name='us-west-2')
>>> try:
...     cf.describe_stacks(StackName='adfgfhghg')
... except botocore.exceptions.ClientError as e:
...     print e.response['Error']['Message']
...
Stack with id adfgfhghg does not exist
```

I am on boto3 1.4.2 and botocore 1.4.82 as of this commit message.
2017-01-11 20:36:45 -05:00
Raghavendra D Prabhu
d07c646032 sqs: Use unix_time in place of time.time() (#787)
unix_time() from moto.core.utils is used as the time source through moto,
and it is identical to time.time() in output. Hence, using unix_time()
since it makes mocking easier during testing (when time is mocked out).
2017-01-11 20:35:56 -05:00
Hugo Lopes Tavares
b5ff3345be Add service ARNs support to the DescribeServices ECS API (#796) 2016-12-20 10:37:49 -05:00
Hugo Lopes Tavares
0115267f2a Add ECS CloudFormation support (#795)
* Add cloudformation support to AWS::ECS::Cluster

* Add CloudFormation support to AWS::ECS::TaskDefinition

* Add CloudFormation support to AWS::ECS::Service

* Add support to update AWS::ECS::Cluster through CloudFormation

* Fix Cluster.update_from_cloudformation_json to return original_resource if nothing changed

* Implement TaskDefinition.update_from_cloudformation_json

* Implement Service.update_from_cloudformation_json
2016-12-20 10:37:18 -05:00
Steve Pulec
a39f30ad18 Fix merge conflicts. 2016-12-03 19:40:39 -05:00
Steve Pulec
2c6a967f45 Disable strict_slashes for Flask so that S3 works in server mode. 2016-12-03 18:59:28 -05:00
Rob Walker
ed0e81fc61 Fixup lambda for ResponseRequest (#781)
* Fixup lambda for ResponseRequest

* one day will get this right
2016-12-03 18:17:15 -05:00
mfranke
5dc8e59fab Fix s3bucket_path (#784)
* check HTTP header for IPv4 or IPv6 addresses and default to path based S3

* improved IPv4 and IPv6 checking with optional ports

* typo

* subdomain bucket creation with trailing '/' did not work

* Use regex for Host field check to determine IPv4/IPv6

* add testcases for trailing slash, IPv4 and IPv6
2016-12-03 18:15:24 -05:00
Tom V
c54985a39f Fix for #748. Turn on autoescape for S3 templates. (#779) 2016-12-03 18:13:24 -05:00
Paul Cieslar
ee8e72766a Support for ecs describe_task_definition (#777)
* describe_task_definition support

* Refactor fetch_task_definition

* Add ECS Descriptors  (#772)

* Add support for "DescribeServices" in ecs mock

* Add support for "DescribeTaskDefinition" in ecs

* Let ecs responses handle baseobject for services

* Update Cloudformation/parsing#load_parameters to split commadelimitedlists into lists (#774)

* Fix JSON dump error in ecs.update_service with task_definition (#775)

* Fix s3bucketpath handling for IP based requests (#765)

* check HTTP header for IPv4 or IPv6 addresses and default to path based S3

* improved IPv4 and IPv6 checking with optional ports

* typo

* Freezetime.

* Add S3 ACL for aws-exec-read. Closes #740.

* Fixed time formatting in ec2/models.py (#778)

* Fixed time formatting in ec2/models.py

* Used freezegun on test that was failing due to time progression causing timestamp differences.

* rename duplicate rds/models db_instance_identifier to physical_resource_id (#776)

* rename duplicate db_instance_identifier to physical_resource_id

* Update create_from_cloudformation_json to use db_source_identifier str

* Update code to be more conventional.

* describe_task_definition support

* Refactor fetch_task_definition
2016-12-03 18:12:22 -05:00
Justin Wiley
c7757f953c Can't iterate over dict values in Python 3.3+. Changed Rule.targets from a dict to an array, which is probably better anyway since the dict doesn't maintain order, making API calls with the Limit parameter specified unreliable. 2016-12-01 19:52:00 -08:00
Justin Wiley
5d7a102e4c Stoopid import was still hanging around. 2016-12-01 19:24:40 -08:00
Justin Wiley
6c85a85e0d Removed OrderedDicts for 2.6 and dict.iteritems() calls for 3.3+ compatibility. 2016-12-01 19:10:59 -08:00
Justin Wiley
db0b494b4f Completed the CloudWatch Events mocking module and tests. 2016-12-01 17:23:51 -08:00
Justin Wiley
d0def03c4c Events models first draft done, need to write tests, then get responses going. 2016-11-30 17:09:58 -08:00
Justin Wiley
d0a66f2dff Begin work on mocking CloudWatch Events. 2016-11-29 17:19:26 -08:00
David Wilcox
c3c6eaf281 rename duplicate rds/models db_instance_identifier to physical_resource_id (#776)
* rename duplicate db_instance_identifier to physical_resource_id

* Update create_from_cloudformation_json to use db_source_identifier str

* Update code to be more conventional.
2016-11-23 20:07:26 -06:00
Justin Wiley
d6890640b2 Fixed time formatting in ec2/models.py (#778)
* Fixed time formatting in ec2/models.py

* Used freezegun on test that was failing due to time progression causing timestamp differences.
2016-11-23 20:06:35 -06:00
Steve Pulec
136f6d67fb Add S3 ACL for aws-exec-read. Closes #740. 2016-11-23 19:42:36 -06:00
mfranke
040c2cd8cc Fix s3bucketpath handling for IP based requests (#765)
* check HTTP header for IPv4 or IPv6 addresses and default to path based S3

* improved IPv4 and IPv6 checking with optional ports

* typo
2016-11-23 19:05:34 -06:00
Pior Bastida
09ca1c4388 Fix JSON dump error in ecs.update_service with task_definition (#775) 2016-11-23 19:01:48 -06:00
David Wilcox
4ea915fc3a Update Cloudformation/parsing#load_parameters to split commadelimitedlists into lists (#774) 2016-11-23 18:57:47 -06:00
Robert Sheehy
17584e9aa4 Add ECS Descriptors (#772)
* Add support for "DescribeServices" in ecs mock

* Add support for "DescribeTaskDefinition" in ecs

* Let ecs responses handle baseobject for services
2016-11-23 18:56:12 -06:00
Sean Marlow
fa3663c610 Add support for login profile deletion (#768)
* Add support for delete_login_profile.

Mock deletion of login profile. Set password to
none. Add tests to cover new endpoint.

* Fix typo in create_login_profile response.

Change CreateUserResult to CreateLoginProfileResult
in the CREATE_LOGIN_PROFILE_TEMPLATE. Caused KeyError
when using boto3.

Add test to cover boto3 in addition to boto.
2016-11-11 17:05:01 -05:00
Nuno Santos
71c1fbadbe Add DynamoDB tests for update_item() with UpdateExpression, support spaces in the UpdateExpression. (#758)
Fixes #745.
2016-11-11 17:04:14 -05:00
Mike Pappas
4942e74ab1 Fix SNS application endpoint to match AWS return format (#763) 2016-11-11 17:01:47 -05:00
Steve Pulec
1c61498cc8 0.4.30 2016-11-09 11:25:14 -05:00
Steve Pulec
5c3d9b4ae1 Have spot requests launch instances. 2016-11-07 23:08:30 -05:00
Steve Pulec
24035877f6 0.4.29 2016-11-07 14:55:08 -05:00
Steve Pulec
8681998e91 Nest flask import so that it is not required globally. 2016-11-07 14:54:22 -05:00
Steve Pulec
c3e0ff4fe7 0.4.28 2016-11-07 12:57:18 -05:00
Steve Pulec
5371044b6f Spot fleet (#760)
* initial spot fleet.

* Add cloudformation spot fleet support.

* If no spot fleet ids, return all.
2016-11-07 09:53:44 -05:00
Steve Pulec
9101b58934 Need to speficy how we are sorting. 2016-11-06 10:57:01 -05:00
Steve Pulec
38021c6ef5 Test Boto 2.43.0 . 2016-11-06 10:29:50 -05:00
Steve Pulec
3b98566f20 Merge pull request #757 from nfvs/dynamodb_putitem_conditional
Attempt to parse simple ConditionExpressions in DynamoDB put_item().
2016-11-06 09:53:45 -05:00
Steve Pulec
44636d1f73 Merge pull request #755 from dtenenba/master
bump tag limit from 10 to 50 to align with actual AWS limit
2016-11-06 09:52:20 -05:00
Steve Pulec
721d1b3a3f Merge pull request #736 from okomestudio/ts/botocore_update
Remove botocore version pinning
2016-11-06 09:50:28 -05:00