Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

renamed get_all_vmtypes method to get_all_instance_types to better match... #2118

Merged
merged 2 commits into from Mar 5, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 6 additions & 6 deletions boto/ec2/connection.py
Expand Up @@ -58,7 +58,7 @@
from boto.ec2.bundleinstance import BundleInstanceTask
from boto.ec2.placementgroup import PlacementGroup
from boto.ec2.tag import Tag
from boto.ec2.vmtype import VmType
from boto.ec2.instancetype import InstanceType
from boto.ec2.instancestatus import InstanceStatusSet
from boto.ec2.volumestatus import VolumeStatusSet
from boto.ec2.networkinterface import NetworkInterface
Expand Down Expand Up @@ -4321,15 +4321,15 @@ def delete_network_interface(self, network_interface_id, dry_run=False):
params['DryRun'] = 'true'
return self.get_status('DeleteNetworkInterface', params, verb='POST')

def get_all_vmtypes(self):
def get_all_instance_types(self):
"""
Get all vmtypes available on this cloud (eucalyptus specific)
Get all instance_types available on this cloud (eucalyptus specific)

:rtype: list of :class:`boto.ec2.vmtype.VmType`
:return: The requested VmType objects
:rtype: list of :class:`boto.ec2.instancetype.InstanceType`
:return: The requested InstanceType objects
"""
params = {}
return self.get_list('DescribeVmTypes', params, [('euca:item', VmType)], verb='POST')
return self.get_list('DescribeInstanceTypes', params, [('item', InstanceType)], verb='POST')

def copy_image(self, source_region, source_image_id, name=None,
description=None, client_token=None, dry_run=False):
Expand Down
14 changes: 7 additions & 7 deletions boto/ec2/vmtype.py → boto/ec2/instancetype.py
Expand Up @@ -23,7 +23,7 @@
from boto.ec2.ec2object import EC2Object


class VmType(EC2Object):
class InstanceType(EC2Object):
"""
Represents an EC2 VM Type

Expand All @@ -35,25 +35,25 @@ class VmType(EC2Object):

def __init__(self, connection=None, name=None, cores=None,
memory=None, disk=None):
super(VmType, self).__init__(connection)
super(InstanceType, self).__init__(connection)
self.connection = connection
self.name = name
self.cores = cores
self.memory = memory
self.disk = disk

def __repr__(self):
return 'VmType:%s-%s,%s,%s' % (self.name, self.cores,
return 'InstanceType:%s-%s,%s,%s' % (self.name, self.cores,
self.memory, self.disk)

def endElement(self, name, value, connection):
if name == 'euca:name':
if name == 'name':
self.name = value
elif name == 'euca:cpu':
elif name == 'cpu':
self.cores = value
elif name == 'euca:disk':
elif name == 'disk':
self.disk = value
elif name == 'euca:memory':
elif name == 'memory':
self.memory = value
else:
setattr(self, name, value)
120 changes: 120 additions & 0 deletions tests/unit/ec2/test_instancetype.py
@@ -0,0 +1,120 @@
#!/usr/bin/env python
import httplib

from tests.unit import unittest
from tests.unit import AWSMockServiceTestCase

import boto.ec2

from boto.ec2.instancetype import InstanceType
from boto.ec2.connection import EC2Connection

class TestEC2ConnectionBase(AWSMockServiceTestCase):
connection_class = EC2Connection

def setUp(self):
super(TestEC2ConnectionBase, self).setUp()
self.ec2 = self.service_connection


class TestReservedInstanceOfferings(TestEC2ConnectionBase):

def default_body(self):
return """
<DescribeInstanceTypesResponseType xmlns="http://ec2.amazonaws.com/doc/2013-02-01/">
<VmTypeMessage/>
<instanceTypeDetails>
<item>
<name>m1.small</name><cpu>1</cpu><disk>5</disk><memory>256</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>t1.micro</name><cpu>1</cpu><disk>5</disk><memory>256</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>m1.medium</name><cpu>1</cpu><disk>10</disk><memory>512</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>c1.medium</name><cpu>2</cpu><disk>10</disk><memory>512</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>m1.large</name><cpu>2</cpu><disk>10</disk><memory>512</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>m1.xlarge</name><cpu>2</cpu><disk>10</disk><memory>1024</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>c1.xlarge</name><cpu>2</cpu><disk>10</disk><memory>2048</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>m2.xlarge</name><cpu>2</cpu><disk>10</disk><memory>2048</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>m3.xlarge</name><cpu>4</cpu><disk>15</disk><memory>2048</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>m2.2xlarge</name><cpu>2</cpu><disk>30</disk><memory>4096</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>m3.2xlarge</name><cpu>4</cpu><disk>30</disk><memory>4096</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>cc1.4xlarge</name><cpu>8</cpu><disk>60</disk><memory>3072</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>m2.4xlarge</name><cpu>8</cpu><disk>60</disk><memory>4096</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>hi1.4xlarge</name><cpu>8</cpu><disk>120</disk><memory>6144</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>cc2.8xlarge</name><cpu>16</cpu><disk>120</disk><memory>6144</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>cg1.4xlarge</name><cpu>16</cpu><disk>200</disk><memory>12288</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>cr1.8xlarge</name><cpu>16</cpu><disk>240</disk><memory>16384</memory>
<availability/><ephemeralDisk/>
</item>
<item>
<name>hs1.8xlarge</name><cpu>48</cpu><disk>24000</disk><memory>119808</memory>
<availability/><ephemeralDisk/>
</item>
</instanceTypeDetails>
</DescribeInstanceTypesResponseType>
"""

def test_get_instance_types(self):
self.set_http_response(status_code=200)
response = self.ec2.get_all_instance_types()
self.assertEqual(len(response), 18)
instance_type = response[0]
self.assertEqual(instance_type.name, 'm1.small')
self.assertEqual(instance_type.cores, '1')
self.assertEqual(instance_type.disk, '5')
self.assertEqual(instance_type.memory, '256')
instance_type = response[17]
self.assertEqual(instance_type.name, 'hs1.8xlarge')
self.assertEqual(instance_type.cores, '48')
self.assertEqual(instance_type.disk, '24000')
self.assertEqual(instance_type.memory, '119808')


if __name__ == '__main__':
unittest.main()