969 Commits

Author SHA1 Message Date
Wessel van der Veen
6d52cd06cb Adds support for enable/disable/describe vpc-classic-link-dns-support. 2019-11-11 10:55:09 -08:00
Wessel van der Veen
17cc46b91e adds basic support for vpc-classic-link 2019-11-11 10:54:36 -08:00
Bert Blommers
179bdd6caa #2002 - Take ElasticNetworkInterfaces into account when requesting available IP addresses 2019-11-08 16:40:17 +00:00
Your Name
f58f645a8e available_ip_addresses is now a string 2019-11-08 01:45:40 -08:00
Your Name
040cbef9be Displays the correct number of available IP addresses for a subnet
create_subnet and describe_subnets displays the correct number of
available IP addresses. The module currently has '251' hardcoded.
This fix shows available IPs minus 5, which are reserved in each
subnet by AWS.
2019-11-08 01:40:23 -08:00
Asher Foa
96e5b1993d Run black on moto & test directories. 2019-10-31 10:36:05 -07:00
Chih-Hsuan Yen
84fb52d0a2
Fix remaining flake8 issues
Disabling W504 and W605 for now as there are too many instances.
2019-10-27 21:00:01 +08:00
Selena
e64b9ca0ef fix deprication warning invalid escape sequence
fix #2489
2019-10-18 12:52:05 +02:00
Steve Pulec
7c2d328724
Merge pull request #2400 from acsbendi/elbv2-terminated-instance-target
Terminated EC2 instances are deregistered from ELBv2 target groups.
2019-09-11 21:39:37 -05:00
Niels Laukens
91fb408102
Move tags_from_query_string to core.utils 2019-09-04 16:25:43 +02:00
acsbendi
675db17ace Implemented deregistering terminated instances from ELB target groups. 2019-08-30 18:21:11 +02:00
Don Kuntz
d2ce3a9e04
Flake8 fixes 2019-08-19 18:01:44 -05:00
Don Kuntz
a1aa087718
Add test for creating launch templates with TagSpecifications option 2019-08-19 17:58:19 -05:00
Don Kuntz
743e5be4d3
Confirm describe_launch_template_versions works with Versions, MinVersion, and MaxVersion options 2019-08-19 17:57:39 -05:00
Don Kuntz
154b4ef844
Simplify xml_serialize, warn when unknown type used 2019-08-19 17:54:35 -05:00
Don Kuntz
ed82264806 Rework LaunchTemplateBackend to be keep only one copy of a template, and be ordered
The original LaunchTemplateBackend kept two copies of a template, one
for referencing it by name and one for referencing it by id. This change
switches to using one copy, by id, and adding a lookup dict for mapping
names to ids.

Additionally, to fix the python2 test ordering issues, the launch
template dict was changed to an OrderedDict.
2019-08-14 17:33:21 -05:00
Don Kuntz
5f80014332 Serialize unicode as string in python2 2019-08-14 17:33:21 -05:00
Don Kuntz
f939531ae9 Fun with whitespace (flake8 violation fixes) 2019-08-14 16:19:30 -05:00
Don Kuntz
aa3b6085d1 Add basic endpoints for EC2 Launch Templates
Specifically, add the CreateLaunchTemplate, CreateLaunchTemplateVersion,
DescribeLaunchTemplates, and DescribeLaunchTemplateVersions endpoints.
2019-08-14 16:11:07 -05:00
Don Kuntz
ce4059f6d9
Use a consistent owner id between EC2 resources
Previously there were a couple models which used different owner ids by
default, which could make tests relying on them fail if someone wasn't
expecting that. This change ensures a uniform owner id between
resources.
2019-07-22 21:50:09 -05:00
mickeypash
41b1482b59 Simplify conditional 2019-07-20 21:36:21 +01:00
mickeypash
66db4fffa0 Merge remote-tracking branch 'upstream/master' 2019-07-20 11:43:03 +01:00
Steve Pulec
7ec3d43e0c
Merge pull request #2319 from acsbendi/autoscaling-group-from-instance
Implemented creating Auto Scaling group from instance
2019-07-20 00:06:22 -04:00
Steve Pulec
2a981d3d45
Merge pull request #2325 from acsbendi/autoscaling-terminate-instance-in-group
Auto Scaling groups recreate terminated instances
2019-07-19 23:34:42 -04:00
acsbendi
19c9c59367 Implemented Auto Scaling groups recreate terminated instances. 2019-07-19 12:56:27 +02:00
acsbendi
c8abd43c88 Implemented creating autoscaling group from instance. 2019-07-17 20:58:23 +02:00
Berislav Kovacki
e67e2deee4 Extend EC2 DescribeNetworkInterface filter support
* add description property to EC2 NetworkInterface
* extend DescribeNetworkInterfaces filter support with description,
subnet-id, private-ip-address attributes
2019-07-15 00:01:37 +02:00
Bendegúz Ács
b0aab6fb15
Fixed a linting error. 2019-07-05 15:32:22 +02:00
acsbendi
7de0ef0f8b Fixed value is present in response even if it's None. 2019-07-05 15:24:16 +02:00
acsbendi
0b88dd1efb Fixed security group IDs not returned correctly. 2019-07-05 15:12:38 +02:00
acsbendi
9e6152588a Fixed attributes missing from Instance. 2019-07-05 14:31:46 +02:00
acsbendi
9623e8a10c Implemented raising error if the attribute is invalid. 2019-07-05 14:09:58 +02:00
Bendegúz Ács
8f53b16b9a Updates to create_subnet and describe_subnets responses (#2053)
* Removed Tags field from create_subnet response.

* Added DefaultForAz to create_subnet response.

* Added MapPublicIpOnLaunch to create_subnet response.

* Added OwnerId to create_subnet response.

* Added AssignIpv6AddressOnCreation field for create_subnet and describe_subnet and implemented setting it in modify_subnet_attribute.

* Added SubnetArn to create_subnet response.

* Added AvailabilityZoneId to create_subnet and describe_subnet responses, and error for invalid availability zone.

* Added Ipv6CidrBlockAssociationSet to create_subnet response.

* Added missing fields to describe_subnets response.

* Added myself to list of contributors and marked describe_subnet as implemented.

* Fixed linting errors.

* Fixed blank line containing a tab.

* Fixed accidentally deleted ).

* Fixed broken tests.
2019-05-28 16:33:25 +01:00
Bendegúz Ács
21917c4b93 Bug fix for default network ACL entries (#2056)
* Fixed a bug where default network ACL entries could not be deleted.

* Implemented throwing error when a network entry with the same rule number and egress value already exists.

* Fixed syntax errors.

* Added socket.timeout to possibly raised exceptions in wait_for for Python 3.
2019-05-26 02:02:14 +01:00
Bendegúz Ács
f408709ef9 VPC IPv4 validation (#2026)
* Implemented throwing invalid subnet range error and fixed breaking tests.

* Implemented throwing invalid CIDR block parameter error for vpcs and subnets.

* Implemented throwing invalid destination CIDR block error.

* IPv6 addresses not accepted, strict checking disabled.

* Implemented throwing invalid subnet conflict error and fixed breaking tests.

* Implemented throwing invalid VPC range error and fixed breaking tests.

* Fixed accidentally removed ).

* Fixed test case trying to create two subnets with the same CIDR range.
2019-05-25 18:35:07 +01:00
Daniel Miranda
fb2a76fd66 ec2: add support for creation and importing of real SSH keys (#2108)
* ec2: add support for creation and importing of real SSH keys

* setup: lock PyYAML version to avoid incompatibilities
2019-05-25 11:17:52 +01:00
Jeffery Smith
4a99dcddb2 Issue #2141 Adding owner-id to the filter for Snapshot (#2142)
* Adding owner-id to the filter for Snapshot
2019-05-25 10:34:59 +01:00
Hans
9b12ce6809 Fix #1842 Create cross region VPC peering connection in both region (#2195)
Add a class level store in models/VPCPeeringConnectionBackend of ec2
for saving vpc peering connection.
Any instance can correctly save VPC peering connection info
on both region when it create vpc peering connection.

Update vpc_peering_connections in ec2/responses to meet new version:
DESCRIBE_VPC_PEERING_CONNECTIONS_RESPONSE,
ACCEPT_VPC_PEERING_CONNECTION_RESPONSE,

Previous code only create one region VPC peering connection but
doesn't create the other region VPC peering connection
when create cross region VPC peering connection.

Tested in real AWS environment at first
and create unit test case according to real AWS environment response.

Add 5 test cases
VPC cross region delete case
VPC cross region accept case
VPC cross region accept wrong region case
VPC cross region reject case
VPC cross region reject wrong region case

Related: #1842, #1830
2019-05-25 10:21:57 +01:00
Eliot Alter
e504226386 Fix a warning which was missing a space after the preiod. (#2022) 2019-05-21 00:01:06 +01:00
TBurnip
fcc83318fc Merge branch 'master' of https://github.com/spulec/moto 2019-04-18 20:05:22 +01:00
TBurnip
99a99b7181 Fixed it again i should of seen that as well soz. 2019-04-17 20:31:24 +01:00
TBurnip
e5bda52425 Updating to meet your requirements 2019-04-17 19:47:21 +01:00
Mike Grima
d8dbc6a49c
Merge pull request #2134 from ogckw/master
Fix #2129 EC2 tag should raise ClientError when resource is empty
2019-04-17 11:05:28 -07:00
TBurnip
c7b0905c23 A fix for tags not mimicking AWS 2019-04-15 12:40:04 +01:00
hsuhans
6b7282f93c Fix #2129 EC2 tag should raise ClientError when resource is empty
Raise MissingParameterError exception in models/validate_resource_ids of ec2.

Add ec2 create tag with empty resource test case.
Add ec2 delete tag with empty resource test case.

Related: #2129

Reference
boto3 create_tags
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.create_tags

boto3 delete_tags
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.delete_tags

Amazon EC2 API Reference Actions CreateTags
https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html

Amazon EC2 API Reference Actions DeleteTags
https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteTags.html
2019-03-30 23:26:50 +08:00
Hugo Lopes Tavares
d4e39146b7 Make sure every NetworkInterface has a private IP
AWS always assigns a primary IP address to Network Interfaces.
Using a test account (modified the IP):

    >>> import boto
    >>> vpc = boto.connect_vpc()
    >>> eni = vpc.create_network_interface(subnet_id)
    >>> eni.private_ip_addresses
    [PrivateIPAddress(10.1.2.3, primary=True)]
2019-03-27 16:27:10 -04:00
Tay Frost
7b236c4ded bugfix ebs volume tag behaviour
This commit modifies the response format of the ec2 calls
`create_volume` and `describe_volumes`. Previously, these calls would
always include a `Tags` key in the response, even when a volume has no tags.
Now, the `Tags` key will not be included in the response if the volume
has no tags.

When an EBS volume has no tags, calls to the aws ec2 endpoints `create_volume`
and `describe_volumes` do not include the `Tags` key in the
`response.Volumes[]` object.

However, moto does include the `Tags` key in this case. This discrepancy
in behaviour can result in code passing a moto test but failing in
production.

Sample snippets that trigger this condition:

```
def create_volume_and_then_get_tags_from_response():
    client = boto3.client('ec2', region_name='us-east-1')
    volume_response = client.create_volume(
        Size=10,
        AvailabilityZone='us-east-1a'
    )
    keys = volume_response['Keys']
```

```
def create_volume_and_then_get_tags_from_describe_volumes():
    client = boto3.client('ec2', region_name='us-east-1')
    volume_response = client.create_volume(
        Size=10,
        AvailabilityZone='us-east-1a'
    )
    volume_describe_response = client.describe_volumes()
    keys = volume_describe_response['Volumes'][0]['Keys']
```

Both sample snippets will succeed in a moto test, but fail with a
`KeyError` when using the aws api.
2019-03-07 17:31:45 -05:00
Mike Grima
09855801ba
Merge pull request #2019 from acsbendi/launch_index
Correctly returning ami launch index
2019-02-25 12:16:40 -08:00
Mike Grima
d652755f3b
Merge pull request #2032 from drmorr0/spot_fleet_tag_specifications
tag specifications for spot fleet requests
2019-02-01 11:47:36 -08:00
David Morrison
b4b63202d9 tag specifications for spot fleet requests 2019-01-24 11:38:07 -08:00