Commit Graph

34 Commits

Author SHA1 Message Date
Jordan Sanders
b4e961148f
Pass the default ECS cluster and raise accurate exceptions (#3522)
* 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.
2020-12-08 12:55:49 +00:00
Peter Baumgartner
94c676b9cf
include=["TAGS"] for describe_task_definition (#3265)
* include=["TAGS"] for describe_task_definition

* Different approach

* describe_services tags and tests
2020-09-01 10:24:08 +01:00
Aaron Hill
1e5b8acac6
Implementation: ECS Task Sets (#3152)
* 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
2020-07-21 07:17:37 +01:00
Rifqi Al Fatih
f23f706825 Implement placement constraints model 2020-05-02 18:47:59 +02:00
Don Kuntz
fd1fdde1bf
Allow black to reformat correctly 2020-01-09 23:45:14 -06:00
Don Kuntz
2cb3f327de
Store 'networkMode' in ECS Task Definitions instead of just throwing it away 2020-01-09 23:00:33 -06:00
Alex Tareshawty
df2279d39c Add familyPrefix option to ecs:ListTaskDefinitions
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": []
}
```
2019-11-26 09:40:01 -05:00
Asher Foa
96e5b1993d Run black on moto & test directories. 2019-10-31 10:36:05 -07:00
Jim Shields
6cb1173719 Add tag_resource and untag_resource for ECS services
* Refactor resource ARN parsing
2019-10-03 15:16:07 -04:00
Jim Shields
d8333fdd7e Add support for tagging of ECS services
* Add tags to create_service
* Add service to list_tags_for_resource
2019-10-03 14:30:08 -04:00
Michael van Tellingen
64e2a74e8c Add support for setting tags on ecs task definitions
This also implements the ecs.list_tags_for_resources, although the
resources it checks for are currently only the task definitions
2019-07-29 09:58:08 +02:00
Kyle Decot
8cb4db1896 Adds Support for filtering on schedulingStrategy in ECS#list_services (#2180) 2019-05-02 19:00:28 +01:00
Nick Venenga
d181897ec9
Add proper failure response to describe_clusters 2019-03-28 14:50:48 -04:00
Manuel Adarve
b75e78a3cd ECS: Added schedulingStrategy support
Co-authored-by: Jonas Gratz <jgratz@newstore.com>
2018-08-13 18:30:05 +02:00
Flavio Ferrara
5298b221b5 Add support for creating ECS services with Load Balancer 2018-06-06 09:50:03 +01:00
Terry Cain
6e28c58e26 Added ecs attributes methods 2017-10-28 19:18:39 +01:00
Alexander Mohr
9008b85299 lambda + SNS enhancements (#1048)
* 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
2017-09-27 16:04:58 -07:00
GuyTempleton
acb6c3ce01
Implement container instance deregistration 2017-04-13 17:46:15 +01:00
GuyTempleton
71e8f6ef5b
First cut of container instance deregistration 2017-04-13 08:54:25 +01:00
GuyTempleton
880f3fb950
Container Instance Resource implementation 2017-04-12 13:30:32 +01:00
Steve Pulec
3b4ef2cf15 Merge in master. 2017-03-05 09:58:39 -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
Steve Pulec
f37bad0e00 Lints. 2017-02-23 21:37:43 -05:00
Steve Pulec
cad185c74d Cleanup headers and encoding. 2017-02-16 22:51:04 -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
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
Georges Chaudy
dc75e5d6ad add ecs tasks methods 2016-08-30 00:26:13 +01:00
Riccardo M. Cefala
137791e960 add ECS describe_container_instances 2016-06-14 17:58:11 +02:00
Riccardo M. Cefala
115f9513f6 add ECS ContainerInstance register and list actions 2016-06-11 12:52:19 +02:00
beeva-antonioirizar
d13199ba06 remove nextToken if the library doesn't support pagination, because it doesn't send nextToken if it doesn't exceed maxResults. See documentation http://docs.aws.amazon.com/cli/latest/reference/ecs/list-clusters.html 2016-02-09 18:08:55 +01:00
beeva-antonioirizar
e7d469f21d when create_cluster without name it should create a cluster with name default. Reference documentation http://docs.aws.amazon.com/cli/latest/reference/ecs/create-cluster.html 2016-02-09 17:03:25 +01:00
beeva-antonioirizar
f89721328a add method describe_clusters for service ecs 2016-02-09 16:59:16 +01:00
jbencook
3d6d3bfa27 python3 fixes 2015-12-17 17:43:16 +00:00
jbencook
3737b39e15 create, list, delete for cluster, task and service 2015-12-17 17:13:00 +00:00