* Pass the "default" cluster
* Mock ECS exceptions more accurately
Moto's mock ECS has drifted fairly far from the actual ECS API in terms
of which exceptions it throws. This change begins to bring mock ECS's
exceptions in line with actual ECS exceptions. Most notably:
- Several custom exceptions have been replaced with their real ECS
exception. For example, "{0} is not a cluster" has been replaced with
ClusterNotFoundException
- Tests have been added to verify (most of) these exceptions work
correctly. The test coverage was a little spotty to begin with.
- The new exceptions plus the change to pass the "default" cluster
exposed a lot of places where mock ECS was behaving incorrectly. For
example, the ListTasks action is always scoped to a single cluster in
ECS but it listed tasks for all clusters in the mock. I've minimally
updated the tests to make them pass, but there's lots of opportunity to
refactor both this method's test and its implementation.
This does not provide full coverage of exceptions. In general, I ran
these operations against actual ECS resources and cross-referenced the
documentation to figure out what actual exceptions should be thrown and
what the messages should be. Consequently, I didn't update any
exceptions that took more than trivial amount of time to reproduce with
real resources.
* initial implementation of taskSets. Fixed a bug with ECS Service where task_definition was a required parameter.
* Added update_task_set and tests. DRYed up ClusterNotFoundException. General cleanup.
* Added support for filtering tags on include parameter to describe_task_sets. Added additional tests.
* Fix copy/pasta in ClusterNotFoundException
* styling updates
* Added TODO for delete_task_set force parameter
* Updated multiple function and constructor calls to use named variables. Updated tests to reference variables instead of hardcoded strings.
* Run black for formatting
* Updated create_service function call to use named variables
AWS defines this option as:
```
--family-prefix (string)
The full family name with which to filter the ListTaskDefinitions
results. Specifying a familyPrefix limits the listed task
defini-tions to task definition revisions that belong to that
family.
```
This option behaves differently than ecs:ListTaskDefinitionFamilies.
Instead of doing a comparison like `startswith`, it does a full string
comparison by matching the entire task definition family to the prefix.
For example, let's say there exists a task definition with the family
`super-cool-task-def`.
ListTaskDefinitionFamilies would look like this:
```
aws ecs list-task-definition-families --family-prefix super-cool
{
"families": [
"super-cool-task-def"
]
}
```
ListTaskDefinitions would look like this:
```
aws ecs list-task-definitions --family-prefix super-cool
{
"taskDefinitionArns": []
}
```
* updates
- support lambda messages from SNS
- run lambda in docker container
* decode output
* populate timeout
* simplify
* whoops
* skeletons of cloudwatchlogs
* impl filter log streams
* fix logging
* PEP fixes
* PEP fixes
* fix reset
* fix reset
* add new endpoint
* fix region name
* add docker
* try to fix tests
* try to fix travis issue with boto
* fix escaping in urls
* fix environment variables
* fix PEP
* more pep
* switch back to precise
* another fix attempt
* fix typo
* fix lambda invoke
* fix more unittests
* work on getting this to work in new scheme
* fix py2
* fix error
* fix tests when running in server mode
* more lambda fixes
* try running with latest docker
adapted from aiodocker
* switch to docker python client
* pep fixes
* switch to docker volume
* fix unittest
* fix invoke from sns
* fix zip2tar
* add hack impl for get_function with zip
* try fix
* fix for py < 3.6
* add volume refcount
* try to fix travis
* docker test
* fix yaml
* try fix
* update endpoints
* fix
* another attempt
* try again
* fix recursive import
* refactor fix
* revert changes with better fix
* more reverts
* wait for service to come up
* add back detached mode
* sleep and add another exception type
* put this back for logging
* put back with note
* whoops :)
* docker in docker!
* fix invalid url
* hopefully last fix!
* fix lambda regions
* fix protocol
* travis!!!!
* just run lambda test for now
* use one print
* fix escaping
* another attempt
* yet another
* re-enable all tests
* fixes
* fix for py2
* revert change
* fix for py2.7
* fix output ordering
* remove this given there's a new unittest that covers it
* changes based on review
- add skeleton logs test file
- switch to docker image that matches test env
- fix mock_logs import
* add readme entry
* Uptick boto3 version to version supporting ECS container instance state changes
* Add initial status update
* Only place tasks on active instances
* PEP8 cleanup
* 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