'List available Linode plans
Gets the sizes that can be used for creating a Linode.  Since available
Linode plans vary per-location, this method can also be passed a
location to filter the availability.
:keyword location: the facility to retrieve plans in
:type    location: :class:`NodeLocation`
:rtype: ``list`` of :class:`NodeSize`'

def list_sizes(self, location=None):

    params = {'api_action': 'avail.linodeplans'}
    data = self.connection.request(API_ROOT, params=params).objects[0]
    sizes = []
    for obj in data:
        n = NodeSize(id=obj['PLANID'], name=obj['LABEL'], ram=obj['RAM'], disk=(obj['DISK'] * 1024), bandwidth=obj['XFER'], price=obj['PRICE'], driver=self.connection.driver)
        sizes.append(n)
    return sizes
