Changed mock_ecs to support ecs.run_task calls with a default cluster
This commit is contained in:
parent
452e63977e
commit
0163eb6a9d
@ -604,7 +604,10 @@ class EC2ContainerServiceBackend(BaseBackend):
|
|||||||
raise Exception("{0} is not a task_definition".format(task_definition_name))
|
raise Exception("{0} is not a task_definition".format(task_definition_name))
|
||||||
|
|
||||||
def run_task(self, cluster_str, task_definition_str, count, overrides, started_by):
|
def run_task(self, cluster_str, task_definition_str, count, overrides, started_by):
|
||||||
cluster_name = cluster_str.split("/")[-1]
|
if cluster_str:
|
||||||
|
cluster_name = cluster_str.split("/")[-1]
|
||||||
|
else:
|
||||||
|
cluster_name = "default"
|
||||||
if cluster_name in self.clusters:
|
if cluster_name in self.clusters:
|
||||||
cluster = self.clusters[cluster_name]
|
cluster = self.clusters[cluster_name]
|
||||||
else:
|
else:
|
||||||
|
@ -1122,6 +1122,71 @@ def test_run_task():
|
|||||||
response["tasks"][0]["stoppedReason"].should.equal("")
|
response["tasks"][0]["stoppedReason"].should.equal("")
|
||||||
|
|
||||||
|
|
||||||
|
@mock_ec2
|
||||||
|
@mock_ecs
|
||||||
|
def test_run_task_default_cluster():
|
||||||
|
client = boto3.client("ecs", region_name="us-east-1")
|
||||||
|
ec2 = boto3.resource("ec2", region_name="us-east-1")
|
||||||
|
|
||||||
|
test_cluster_name = "default"
|
||||||
|
|
||||||
|
_ = client.create_cluster(clusterName=test_cluster_name)
|
||||||
|
|
||||||
|
test_instance = ec2.create_instances(
|
||||||
|
ImageId="ami-1234abcd", MinCount=1, MaxCount=1
|
||||||
|
)[0]
|
||||||
|
|
||||||
|
instance_id_document = json.dumps(
|
||||||
|
ec2_utils.generate_instance_identity_document(test_instance)
|
||||||
|
)
|
||||||
|
|
||||||
|
response = client.register_container_instance(
|
||||||
|
cluster=test_cluster_name, instanceIdentityDocument=instance_id_document
|
||||||
|
)
|
||||||
|
|
||||||
|
_ = client.register_task_definition(
|
||||||
|
family="test_ecs_task",
|
||||||
|
containerDefinitions=[
|
||||||
|
{
|
||||||
|
"name": "hello_world",
|
||||||
|
"image": "docker/hello-world:latest",
|
||||||
|
"cpu": 1024,
|
||||||
|
"memory": 400,
|
||||||
|
"essential": True,
|
||||||
|
"environment": [
|
||||||
|
{"name": "AWS_ACCESS_KEY_ID", "value": "SOME_ACCESS_KEY"}
|
||||||
|
],
|
||||||
|
"logConfiguration": {"logDriver": "json-file"},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
)
|
||||||
|
response = client.run_task(
|
||||||
|
launchType="FARGATE",
|
||||||
|
overrides={},
|
||||||
|
taskDefinition="test_ecs_task",
|
||||||
|
count=2,
|
||||||
|
startedBy="moto",
|
||||||
|
)
|
||||||
|
len(response["tasks"]).should.equal(2)
|
||||||
|
response["tasks"][0]["taskArn"].should.contain(
|
||||||
|
"arn:aws:ecs:us-east-1:012345678910:task/"
|
||||||
|
)
|
||||||
|
response["tasks"][0]["clusterArn"].should.equal(
|
||||||
|
"arn:aws:ecs:us-east-1:012345678910:cluster/default"
|
||||||
|
)
|
||||||
|
response["tasks"][0]["taskDefinitionArn"].should.equal(
|
||||||
|
"arn:aws:ecs:us-east-1:012345678910:task-definition/test_ecs_task:1"
|
||||||
|
)
|
||||||
|
response["tasks"][0]["containerInstanceArn"].should.contain(
|
||||||
|
"arn:aws:ecs:us-east-1:012345678910:container-instance/"
|
||||||
|
)
|
||||||
|
response["tasks"][0]["overrides"].should.equal({})
|
||||||
|
response["tasks"][0]["lastStatus"].should.equal("RUNNING")
|
||||||
|
response["tasks"][0]["desiredStatus"].should.equal("RUNNING")
|
||||||
|
response["tasks"][0]["startedBy"].should.equal("moto")
|
||||||
|
response["tasks"][0]["stoppedReason"].should.equal("")
|
||||||
|
|
||||||
|
|
||||||
@mock_ec2
|
@mock_ec2
|
||||||
@mock_ecs
|
@mock_ecs
|
||||||
def test_start_task():
|
def test_start_task():
|
||||||
|
Loading…
Reference in New Issue
Block a user