Commit Graph

737 Commits

Author SHA1 Message Date
usmangani1
552b1294df
Fix : EC2 - Added ownerId filter for describe instances (#3149)
* Fix : EC2 - Added ownerId filter for describe instances

* linting
2020-07-19 10:44:58 +01:00
usmangani1
81be4b37a1
Fix: Ec2 - add destinationIpv6CIDR support. (#3106)
* Fix: Ec2 - add destinationIpv6CIDR support.

* removing unneccessary debug statements

* modifying existing test case

* Linting

Co-authored-by: usmankb <usman@krazybee.com>
Co-authored-by: Bert Blommers <info@bertblommers.nl>
2020-07-07 14:32:55 +01:00
Ninh Khong
7a801a888e Add region information for requesterVpcInfo and accepterVpcInfo 2020-07-04 01:09:31 +07:00
Maxim Kirilov
610bf36f3b
Improve parsing of string values that represents booleans during block device mapping construction (#3073)
* convert str into bool

* Fix python2

* Fix python2

* pylint
2020-06-16 06:03:02 +01:00
usmangani1
5988e5efaa
EC2 : Fix - modified volume type in ec2 describe images. (#3074)
* "modified volume type in ec2 describe images"

* removed unncessary comments

* Linting

Co-authored-by: usmankb <usman@krazybee.com>
Co-authored-by: Bert Blommers <info@bertblommers.nl>
2020-06-15 10:32:43 +01:00
usmangani1
475f022b78
Enhancement: EC2 added create route with networkInterfaceId (#3063)
* Enhancement:EC2- create route with network interfcaeID

* modifying existing test case

* Linting

Co-authored-by: usmankb <usman@krazybee.com>
Co-authored-by: Bert Blommers <info@bertblommers.nl>
2020-06-12 16:16:55 +01:00
André Nardy
97a6e8d9e8
Enhancement/describe network acls (#3003)
* update describe_network_acls and create unit test

* add fail test case

* adjustment after feedback

* fix result test
2020-05-26 11:04:59 +01:00
Maxim Kirilov
2320e82647
Add support for detaching volumes upon instance termination (#2999) 2020-05-24 12:22:45 +01:00
Maxim Kirilov
1e0a7380d5
Add support for BlockDeviceMappings argument (#2949)
* Add support for BlockDeviceMappings argument upon run_instances execution

* Remove redundant check for Ebs existence
2020-05-11 13:23:45 +01:00
Bert Blommers
2e19666e67
Merge pull request #2930 from usmangani1/LSISSUE1450
EC2 enhancement  create vpc end point
2020-04-30 12:13:19 +01:00
Bert Blommers
2d0087d500 Linting 2020-04-29 16:29:25 +01:00
usmankb
f4888da334 added test asserts and review comments 2020-04-29 18:02:02 +05:30
Asher Foa
8e2a14ba50 Add eu-south-1 2020-04-28 15:11:28 -07:00
usmankb
84100c4483 enhancement Create-VPC-endpoint 2020-04-29 00:28:19 +05:30
Bert Blommers
56887073aa
Merge pull request #2697 from Procrat/performance
Import time reduction
2020-04-28 07:18:14 +01:00
Stijn Seghers
8ff248456b
Keep sshpubkeys import function-local (~0.5s) 2020-04-28 10:40:34 +12:00
Matthew Gladney
ff1beea280 Merge https://github.com/spulec/moto into support_optin_regions 2020-04-27 18:27:40 -04:00
Matthew Gladney
f8cabf0729 static list of preexisting regions 2020-04-27 11:52:47 -04:00
Steve Pulec
fbc431dbff
Merge pull request #2837 from bblommers/bug/2810
EC2 - Explicitly set ebs_optimized to false if not specified
2020-04-25 18:44:48 -05:00
Steve Pulec
ac6c550fe6
Merge pull request #2852 from bblommers/feature/mock_eb
Add mock for ElasticBean
2020-04-25 18:42:25 -05:00
Steve Pulec
9c3f6c7592
Merge pull request #2825 from bblommers/feature/2699
EC2 - Add option to add volumes using CloudFormation
2020-04-25 18:36:26 -05:00
Matthew Gladney
59c1f0e131 black reformatting changes 2020-04-24 14:20:58 -04:00
Matthew Gladney
908468edb6 Support OptInStatus for EC2 describe_region calls 2020-04-24 14:15:22 -04:00
Asher Foa
1d31ea6397 add two more zones. 2020-04-23 08:25:14 -07:00
Asher Foa
194de2b6ea Add af-south-1
The new version of botcore adds this region: f7dc4730ad (diff-9dfab05d4ba739e097a193e8b5fa61caR13)
Which in turn, breaks moto:
```
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/__init__.py:3: in <module>
    from .acm import mock_acm  # noqa
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/acm/__init__.py:2: in <module>
    from .models import acm_backends
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/acm/models.py:7: in <module>
    from moto.ec2 import ec2_backends
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/__init__.py:2: in <module>
    from .models import ec2_backends
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:5169: in <module>
    ec2_backends = {
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:5170: in <dictcomp>
    region.name: EC2Backend(region.name) for region in RegionsAndZonesBackend.regions
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:5083: in __init__
    super(EC2Backend, self).__init__()
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:852: in __init__
    super(InstanceBackend, self).__init__()
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:1127: in __init__
    super(TagBackend, self).__init__()
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:2368: in __init__
    super(EBSBackend, self).__init__()
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:1904: in __init__
    super(SecurityGroupBackend, self).__init__()
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:1355: in __init__
    self._load_amis()
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:1362: in _load_amis
    self.amis[ami_id] = Ami(self, **ami)
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:1313: in __init__
    volume = self.ec2_backend.create_volume(15, region_name)
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:2372: in create_volume
    zone = self.get_zone_by_name(zone_name)
/moto-1.3.15.dev640-py2.py3-none-any.whl/moto/ec2/models.py:1713: in get_zone_by_name
    for zone in self.zones[self.region_name]:
E   KeyError: 'af-south-1'
```
2020-04-22 14:41:15 -07:00
Asher Foa
0d04306861 Fix deprecation warning. 2020-04-19 19:12:48 -07:00
Mike Grima
bdeeeb701a
Merge pull request #2880 from bblommers/bugfix/2877
EC2 - Ensure NCI always has a Subnet
2020-04-16 15:02:45 -07:00
Jacob-House
f04d64d981
Update EC2 instance type list 2020-04-15 18:48:33 -02:30
usmankb
7a9cdd4fd2 Adding missing Param zoneId in the describe-availability-zone 2020-04-11 08:37:00 +05:30
Bert Blommers
5c7e0b56af #2877 - Ensure NetworkInterfaces are assigned to the default Subnet 2020-04-08 13:53:53 +01:00
Bert Blommers
aae49493c4 Linting 2020-04-07 08:52:37 +01:00
usmankb
81ca5c3ab0 Implemented describe_instance_credit_specifications function in ec2 #2150 localstack 2020-04-06 21:25:59 +05:30
mickeypash
d3367b8a90 Black formatting 2020-04-03 02:27:46 +01:00
mickeypash
d45e2d2e53 Merge remote-tracking branch 'upstream/master' 2020-04-02 12:35:47 +01:00
Bert Blommers
c32c17a13e Remove duplicated method 2020-03-30 13:49:19 +01:00
Bert Blommers
3ece2dabff Merge remote-tracking branch 'nielslaukens/feature/mock_eb' into feature/mock_eb 2020-03-30 13:38:56 +01:00
Bert Blommers
11526ced18 #2810 - EC2 - Explicitly set ebs_optimized to False if not specified 2020-03-24 09:24:38 +00:00
Bert Blommers
da1a2118bb EC2 - Verify default block exists before tearing down 2020-03-20 16:17:21 +00:00
Bert Blommers
5b596c8a78 #2699 - EC2 - Add Volumes using CloudFormation 2020-03-20 15:17:55 +00:00
Bert Blommers
994ab9aadf #718 - EC2 - Guarantee order when filtering tags from querystring 2020-03-10 12:42:18 +00:00
Bert Blommers
dc98fca853 #718 - Allow filtering by multiple tags 2020-03-09 15:14:51 +00:00
Steve Pulec
a92f862e86
Merge pull request #2764 from bblommers/feature/ec2-describe-instance-filters
Feature  - EC2 describe_instance_status now uses filters
2020-03-07 11:47:05 -06:00
aimannajjar
5b9b965647 [ec2-sg] added logic to create a second default egress rule for ipv6 2020-02-29 21:05:05 -05:00
Bert Blommers
3aeb5f5043 Linting 2020-02-24 13:43:58 +00:00
Bert Blommers
939bd1cd86 EC2 - Add some filters for describe_instance_status 2020-02-24 13:43:19 +00:00
Bert Blommers
df031d0f33 #2732 - Created AMI should have AccountID as the OwnerID 2020-02-08 10:58:31 +00:00
rossjones
6d64b12b41 Remove ResourceWarnings when loading AMIS and INSTANCE_TYPES
When loading AMIS and INSTANCE_TYPES in moto.ec2.models a file handle is
potentially leaked when loading the JSON.  This results in a
ResourceWarning which is a bit of unnecessary noise.

Rather than pass a call to open() to json.load() this instead uses a
context-manager in a small private helper function.

This fixes https://github.com/spulec/moto/issues/2620
2020-02-04 10:04:01 +00:00
Asher Foa
db559e7e06 Fix some typos 2020-01-14 09:55:32 -08:00
Jack Danger
d596560971
Merge pull request #2657 from gruebel/add-missing-regions
Add missing regions to all services
2020-01-02 17:27:25 -08:00
gruebel
9d9b620878 Fixed linter errors 2019-12-26 21:03:49 +01:00
gruebel
d7ba355a65 Add missing regions to all services 2019-12-26 17:12:22 +01:00
John Corrales
d508bd72ce escape the dots 2019-12-19 17:47:17 -08:00
Fabio Dias
743dd46399 black linting 2019-12-16 21:25:20 -05:00
Fabio Dias
fd9ac4b9a5 ACCOUNT_ID moved to moto.core, MOTO_ACCOUNT_ID env var override 2019-12-16 21:05:29 -05:00
Fabio Dias
fb9ebe5a47 linting fixes 2019-12-16 19:56:11 -05:00
Fabio Dias
b83a750630 Added references to moto.iam.models.ACCOUNT_ID instead of hardcoded id 2019-12-16 19:56:11 -05:00
Mike Grima
3247b865de
Merge pull request #2630 from kislyuk/patch-1
Add missing default value for moto.ec2.models.VPC.classic_link_dns_su…
2019-12-13 13:35:44 -08:00
Mike Grima
4386999ea7
Merge pull request #2613 from levinine/add_nat_gateway_id_to_route_and_describe_route_tables
Add nat_gateway_id to route and describe_route_tables
2019-12-12 18:33:11 -08:00
Mike Grima
ab73ab3ff5
Merge pull request #2609 from levinine/describe_nat_gateway_filter_support
Add describe_nat_gateway filters support
2019-12-12 18:29:05 -08:00
Andrey Kislyuk
f60ef02f9d
Add missing default value for moto.ec2.models.VPC.classic_link_dns_supported
Fixes #2629
2019-12-11 14:12:59 -08:00
Berislav Kovacki
43070a03ba Add nat_gateway_id to route and describe_route_tables 2019-12-02 19:20:00 +01:00
Berislav Kovacki
4322ecb254 Add describe_nat_gateway filters support
Support describe_nat_gateway filters by using nat-gateway-id, vpc-id,
subnet-id and state filter parameters.
2019-11-28 23:36:00 +01:00
gruebel
5895231b5c Fix ec2.revoke_security_group_egress for IpProtocol -1 2019-11-24 17:17:53 +01:00
Mike Grima
028aafd05b
Merge pull request #2555 from catherinetcai/feature/ec2-vpc-classic-link
Adds basic implementations for vpc-classic-link and vpc-classic-link-dns-support - Redo
2019-11-16 10:21:29 -08:00
Cat Cai
528cf0e21d Run black to fix linting 2019-11-12 14:51:31 -08:00
Cat Cai
578e8b0395 Update style on VPC 2019-11-11 13:43:23 -08:00
Cat Cai
3398244f14 Fix styling problems 2019-11-11 12:09:52 -08:00
Wessel van der Veen
2b19416ab0 Refactored doc_date into method. 2019-11-11 10:56:35 -08:00
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
acsbendi
68b8e6b636 Implemented adding default entries to default network ACLs. 2019-01-21 15:36:49 +01:00
acsbendi
3c5ce6c09e Fixed new subnets associated with a network ACL from a different VPC. 2019-01-21 13:30:22 +01:00
acsbendi
e476866281 Implemented showing ami_launch_index property in responses. 2019-01-15 17:38:44 +01:00
acsbendi
ca5a8033e5 Implemented providing ami_launch_index to the new Instance's constructor. 2019-01-15 17:37:22 +01:00
acsbendi
22288ef83b Implemented initializing ami_launch_index property. 2019-01-15 17:36:10 +01:00
Steve Pulec
93f68090e3
Merge pull request #1989 from jrbeilke/bugfix-ec2_ami_is-public
Bugfix for filtering EC2 AMIs with is-public (values should be lowercase)
2018-12-28 21:22:28 -05:00
Jon Beilke
a744adbcc5 AWS is case-sensitive when using is-public to filter for AMIs and expects lower-case values 2018-12-06 12:18:59 -06:00
Mark Challoner
6e6f23a1b0
Set deleted status on vpc peer deletion. 2018-11-14 14:48:57 +00:00
hans
cedb89dc3b Fix #1830 Add support for cross-region VPC peering
Add a class level store in models/VPCBackend of ec2
for saving vpcs of all regions info. Any instance can correctly find vpc in another region
when connecting vpc of cross-region or vpc of same region.

Modify vpc_peering_connections in ec2/responses to handle
vpc peering of same region or cross region.

Update vpc_peering_connections response
template content to latest (2016-11-15) .

Add vpc cross region peering successful test case.
Add vpc cross region peering fail test case.

Related: https://github.com/spulec/moto/issues/1830

Reference
CreateVpcPeeringConnection Sample Response
https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpcPeeringConnection.html
2018-09-21 23:29:04 +08:00
Steve Pulec
b26d233820
Merge pull request #1565 from spulec/fix-1522
Fix security group rules for single rule case. Closes #1522.
2018-06-08 17:58:30 -04:00
Steve Pulec
620530c4ee Fix security group egress rule outout. Closes #1612 2018-05-31 22:07:19 -04:00
zane
12188733b7 adding Address reallocate capability for EIP 2018-05-10 23:39:19 -07:00
Phil Christensen
a44b7e7f5c implementing mockable EBS snapshot copies 2018-04-15 17:08:48 -04:00
Steve Pulec
af8697c9a7 Fix security group rules for single rule case. Closes #1522. 2018-04-13 15:03:07 -04:00
Tom Elliff
e2af8bc836 Allow tagging snapshots on creation
Largely copying what was done for volume creation in https://github.com/spulec/moto/pull/1432
2018-04-04 17:46:51 +01:00
Rob Walker
4b3469292a Enable Extended CIDR Associations on VPC (#1511)
* Enable Extended CIDR Associations on VPC

* Ooops missed the utils, try to be more flakey?, remove unnecessary part in tests

* try to be even more flakey
2018-03-21 09:10:38 -07:00
keirbadger
fecdf388c2 Add in filtering of EBS volumes on availability-zone (#1468) 2018-03-21 08:58:32 -07:00
Graham Lyons
5d51329c34 Don't create volumes for AMIs (#1456)
* Delete the volume used during AMI creation

Creating an AMI doesn't actually result in the creation of an EBS
volume, although the associated snapshot does reference one. To that
end, delete the volume once we've used it.

* Add `owner_id` to `Snapshot`, verify AMI snapshots

The default AMIs which are created by moto have EBS volume mappings
but the snapshots associated with those don't have the correct
owners set.

This adds the owner to the snapshot model and passes it through from
the JSON data.
2018-03-21 08:55:58 -07:00
Steve Pulec
924c99bcea
Merge pull request #1448 from grahamlyons/fix-ebs-tagging
Change `'image'` for `'volume'` when getting tags
2018-03-06 22:16:59 -05:00
Steve Pulec
dc03125c1a
Merge pull request #1449 from RasmusWernerLarsen/CidrIpv6
Add support for CidrIpv6 in Cloudformation Security Ingress rules.
2018-03-06 22:15:45 -05:00
Hugo Lopes Tavares
5f61950096 Make SpotPrice optional when requesting a spot fleet
When price is omitted, AWS will default to the on-demand price
2018-02-01 18:07:35 -05:00
Rasmus Larsen
796145d62d Make DestinationCidrBlock optional (ipv6). 2018-01-26 15:32:22 +01:00
Rasmus Larsen
59c49ca34f Fix typo. 2018-01-26 14:55:53 +01:00
Rasmus Larsen
aedfebed98 Add support for CidrIpv6 in Security Ingress rules. 2018-01-26 14:48:11 +01:00
grahamlyons
3ce57644cd Change 'image' for 'volume' when getting tags
The AWS docs say that: "Currently, the resource types that support
tagging on creation are instance and volume." Calling `create_volume`
and passing `image` as the resource type in tag specifications causes
an `InvalidParameterValue` error.
2018-01-26 11:12:50 +00:00
Jack Danger
4520cd930f
Merge pull request #1378 from william-richard/start-running-ami-tests
Make test_amis not executable, so nose runs it
2018-01-24 18:28:40 -08:00
dbfr3qs
597676c59c add tags when creating ebs volume 2018-01-15 21:52:32 +13:00
William Richard
09c5407b86
Fix tests that were introduced in PR #1398 2018-01-11 15:02:03 -05:00
William Richard
e0d4728c5d
Fix ami tests
- missing and malformed image ids
- test_ami_filters

- test_ami_copy tests

- test_ami_create_and_delete test

- test_ami_filter_wildcard test

- the rest of the tests by using the non-deprecated mock_ec2
2018-01-11 15:02:01 -05:00
Nuwan Goonasekera
56ce26a728 Added support for filtering AMIs by self (#1398)
* Added support for filtering AMIs by self

Closes: https://github.com/spulec/moto/issues/1396

* Adjusted regex to also match signature v4 and fixed py3 compatibility
2018-01-04 10:01:17 +00:00
Jack Danger
84f2ec5e04
Merge pull request #1416 from goraxe/describe_regions_with_names
describe_regions: handle region-names parameter
2017-12-28 14:47:39 -08:00
Gordon Irving
5fed6988da describe_regions: handle region-names parameter 2017-12-28 19:06:38 +00:00
Gordon Irving
6da22f9fa4 fix adding tags to vpc created by cloudformation 2017-12-28 19:04:37 +00:00
Nuwan Goonasekera
c68cd650e7 Make sure invalid or malformed AMIs raise an exception
Closes: https://github.com/spulec/moto/issues/1408
2017-12-22 18:50:22 +05:30
Chris Tomlinson
499857e67f Fix co-operative inheritance for ec2 model (#1383) 2017-12-08 21:00:34 +00:00
William Richard
92f5f7b263 Add cloudformation update from s3 support (#1377)
* Fix variable name typo

* Make it possible to delete EC2 instances from cloudformation json

* Add support for updating a cloudformation stack from an s3 template url
2017-12-08 10:48:29 +00:00
Enis Afgan
0c01c7f495 Allow AMIs to be read from a custom file path (#1379) 2017-12-06 10:14:56 +00:00
Pierre Tardy
d8f6f77a0f Fix prebuilt images usability. (#1375)
- add a better error message when user uses an unknown ami
- add image_location in the default fake images

Fixes #1372
2017-12-05 09:22:13 +00:00
Archa91
474023f9a1 fix EC2 instances ebsOptimized not handled (#1340)
* fix EC2 instances ebsOptimized not handled

* add test_create_instance_ebs_optimized
2017-11-14 14:31:54 +00:00
mickeypash
98fa083586 Merge remote-tracking branch 'upstream/master' 2017-11-13 19:59:51 +00:00
mickeypash
d5b841fb6c Fixing volume.attachment is None 2017-11-13 19:58:21 +00:00
Terry Cain
bd8c1e4567
adding owner id to amis v2 (#1331)
* Adding owner-id/OwnerId to the AMI classes to allow the value to be specified to test filtering images based on owner.

* Added default AMIs and filtering by owner-id

* Fixed some tests

* Fixed more random tests

* Updated MANIFEST

* .
2017-11-12 11:18:25 +00:00
Florent Rivoire
6e199d35b3 Use pkg_resources to keep the package zip-safe (#1308) 2017-11-07 13:29:24 +00:00
Terry Cain
9ddf7fe436
Fixed some tests.
Some subnets were bogus so fixed that. Fixed issue where EC2-Classic was not respected.
RDS Deepcopy was breaking on subnet generator
2017-10-25 19:29:56 +01:00
Terry Cain
5b0e463554
Fixed a few ip issues
Fixes #1175
2017-10-24 23:57:43 +01:00
mickeypash
15a1bc43a9 Merge remote-tracking branch 'upstream/master' 2017-10-23 19:16:08 +01:00
mickeypash
4a402b01cf Correct response when trying to delete a volume that is attached to an EC2 instance. Created a VolumeInUse error and did a simple check on the delete_volume method. 2017-10-23 19:12:49 +01:00
David Morrison
becf0a1d3d fix deep-copy in ec2.models.all_reservations 2017-10-23 09:53:02 -07:00
Terry Cain
f3623e3cd3 Fix for #1258 (#1260)
* Fix for #1258

* Updated doc link
2017-10-12 13:59:02 -07:00
Jack Danger
731bb39fe1 Merge pull request #1239 from terrycain/new_ec2_instance_id_style
Use long format for EC2 instance ID
2017-10-07 20:31:06 -07:00
William Johansson
88fb732302 Support wildcard tag filters on SecurityGroups 2017-10-06 21:55:01 +02:00
David Morrison
3d3d0e916e minor bugfixes and added tests 2017-10-05 18:46:58 -07:00
David Morrison
8ca7ccfcb5 add support for the modify_spot_fleet_request operation 2017-10-05 12:50:42 -07:00
Terry Cain
93b8da0437
Use long format for EC2 instance ID 2017-10-04 01:21:30 +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
Jack Danger
53d8d48e88 Revert "Merge pull request #1209 from JackDanger/jack/store-as-python"
This reverts commit 2a3fdf6b64, reversing
changes made to a06145d781.
2017-09-27 13:58:56 -07:00
Jack Danger
4c1d0c3f5f Store JSON in Python for instance types
This allows it to be bundled in the distributed app more simply
2017-09-27 13:50:48 -07:00
Jack Danger
72243f7b7b Merge pull request #1201 from gvlproject/fix_console_filter_regression
Fix for regression in get_console_output()
2017-09-27 11:07:30 -07:00
Terry Cain
c888d65d6d
Added constant containing instance types 2017-09-27 17:29:58 +01:00
Terry Cain
6feaced0bf
Script to get instance info 2017-09-27 17:27:36 +01:00
Nuwan Goonasekera
5b01071bd4 Fix for regression in get_console_output() 2017-09-27 20:26:45 +05:30
Nuwan Goonasekera
ca56955a97 Added invalid id exceptions when filtering vpcs and subnets 2017-09-18 23:38:39 +05:30
Nuwan Goonasekera
08c4eff0b2 Added invalid id exceptions when filtering snapshots and volumes 2017-09-18 23:38:04 +05:30
Nuwan Goonasekera
298772ca92 Raise InvalidGroup.NotFound in DescribeSecurityGroups 2017-09-18 19:51:01 +05:30
Jack Danger
35feb9feb7 Merge pull request #1150 from gvlproject/refactor_filtering
Refactored handling of unknown filter names
2017-09-16 12:07:13 -07:00
Jack Danger
a7049acf70 Merge pull request #1149 from gvlproject/fix_disassociate_address
Fix for instance public ip not being cleared on eip disassociation
2017-09-16 06:43:45 -07:00
Nuwan Goonasekera
7ed1036ba8 Replaced direct querystring access with inherited _get_param 2017-09-16 19:05:32 +05:30
Nuwan Goonasekera
17d62d9266 Replaced redundant sequence_from_querystring with inherited _get_multi_param 2017-09-16 17:08:21 +05:30
Nuwan Goonasekera
6c7b0bdea0 Refactored handling of unknown filter names 2017-09-16 13:56:07 +05:30
Nuwan Goonasekera
0953ddde51 Fix for instance public ip not being cleared on eip disassociation 2017-09-16 12:26:43 +05:30
Jack Danger
b3ce255eee Merge pull request #1148 from gvlproject/vpc_address_filtering
Improved support for VPC Address filtering
2017-09-15 14:22:21 -07:00
Nuwan Goonasekera
8776129816 Improved support for VPC Address filtering 2017-09-16 01:49:57 +05:30
Nuwan Goonasekera
c116c57eb8 Ensure root device is listed in block device mappings 2017-09-15 21:30:32 +05:30
Nuwan Goonasekera
d0c610c5ac Added keypair filtering 2017-09-14 14:59:13 +05:30
Jack Danger
d2a234f75d falling back to use nic' 2017-09-08 16:30:21 -07:00
Jack Danger
5a03497367 rendering vpc_id in ec2 responses 2017-09-08 15:07:44 -07:00
Daniel Lutsch
1f6b1b8c4a Add list support to filters (#1083)
* initial pass with TODOs

* add list support to get_object_value

* fix group-id filters

* add tests for sg name and id filters
2017-08-25 23:43:29 -07:00
Daniel Lutsch
945b984538 Add private-dns-name filter and fix regional DNS (#1076)
* add private-dns-name to filter_dict_attribute_mapping

* add region_name attribute to Instance and InstanceResponse

* set dns name based on region

* test private-dns-name and network-interface.private-dns-name filters. checking both regional dns formats

* update test_ec2_classic_has_public_ip_address to use correct dns values
2017-08-23 01:39:50 -07:00
Jack Danger
074ff68bf1 Merge pull request #1016 from JackDanger/elb-security-groups
Implementing ELB apply_security_groups_to_load_balancer
2017-07-19 17:41:53 -07:00
Jack Danger
6ed8d12317 Enforcing ELB security groups must be real 2017-07-19 15:58:49 -07:00
Christian Hellman
63b09eae13 Added DescribeAccountAttributes 2017-07-17 23:33:40 +00:00
Jeff Hardy
4e2f775c1f Use region list from Boto.
Boto can be configured with extra regions, but moto will fail to import
if they are not in the hardcoded list in ec2/models.py. Instead, use the
region list from boto to build the ec2_backends dict to ensure all
regions are available.
2017-05-26 12:47:28 -07:00