'Return a Size object from the JSON-response dictionary.
:param  machine_type: The dictionary describing the machine.
:type   machine_type: ``dict``
:return: Size object
:rtype: :class:`GCENodeSize`'

def _to_node_size(self, machine_type):

    extra = {}
    extra['selfLink'] = machine_type.get('selfLink')
    extra['zone'] = self.ex_get_zone(machine_type['zone'])
    extra['description'] = machine_type.get('description')
    extra['guestCpus'] = machine_type.get('guestCpus')
    extra['creationTimestamp'] = machine_type.get('creationTimestamp')
    try:
        orig_api_name = self.api_name
        self.api_name = ('%s_%s' % (self.api_name, extra['zone'].name.split('-')[0]))
        price = self._get_size_price(size_id=machine_type['name'])
        self.api_name = orig_api_name
    except:
        price = None
    return GCENodeSize(id=machine_type['id'], name=machine_type['name'], ram=machine_type.get('memoryMb'), disk=machine_type.get('imageSpaceGb'), bandwidth=0, price=price, driver=self, extra=extra)
