Add ability to create EBS volumes from snapshots. Closes #447.

This commit is contained in:
Steve Pulec 2015-11-03 09:37:02 -05:00
commit cddf139bbc
3 changed files with 39 additions and 8 deletions

View file

@ -25,9 +25,10 @@ class ElasticBlockStore(BaseResponse):
return template.render(snapshot=snapshot)
def create_volume(self):
size = self.querystring.get('Size')[0]
zone = self.querystring.get('AvailabilityZone')[0]
volume = self.ec2_backend.create_volume(size, zone)
size = self._get_param('Size')
zone = self._get_param('AvailabilityZone')
snapshot_id = self._get_param('SnapshotId')
volume = self.ec2_backend.create_volume(size, zone, snapshot_id)
template = self.response_template(CREATE_VOLUME_RESPONSE)
return template.render(volume=volume)
@ -110,7 +111,11 @@ CREATE_VOLUME_RESPONSE = """<CreateVolumeResponse xmlns="http://ec2.amazonaws.co
<requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
<volumeId>{{ volume.id }}</volumeId>
<size>{{ volume.size }}</size>
<snapshotId/>
{% if volume.snapshot_id %}
<snapshotId>{{ volume.snapshot_id }}</snapshotId>
{% else %}
<snapshotId/>
{% endif %}
<availabilityZone>{{ volume.zone.name }}</availabilityZone>
<status>creating</status>
<createTime>{{ volume.create_time}}</createTime>
@ -124,7 +129,11 @@ DESCRIBE_VOLUMES_RESPONSE = """<DescribeVolumesResponse xmlns="http://ec2.amazon
<item>
<volumeId>{{ volume.id }}</volumeId>
<size>{{ volume.size }}</size>
<snapshotId/>
{% if volume.snapshot_id %}
<snapshotId>{{ volume.snapshot_id }}</snapshotId>
{% else %}
<snapshotId/>
{% endif %}
<availabilityZone>{{ volume.zone.name }}</availabilityZone>
<status>{{ volume.status }}</status>
<createTime>{{ volume.create_time}}</createTime>