'Lists all images
@inherits: :class:`NodeDriver.list_images`
Ex_image_ids parameter is used to filter the list of
images that should be returned. Only the images
with the corresponding image IDs will be returned.
Ex_owner parameter is used to filter the list of
images that should be returned. Only the images
with the corresponding owner will be returned.
Valid values: amazon|aws-marketplace|self|all|aws id
Ex_executableby parameter describes images for which
the specified user has explicit launch permissions.
The user can be an AWS account ID, self to return
images for which the sender of the request has
explicit launch permissions, or all to return
images with public launch permissions.
Valid values: all|self|aws id
Ex_filters parameter is used to filter the list of
images that should be returned. Only images matching
the filter will be returned.
:param      ex_image_ids: List of ``NodeImage.id``
:type       ex_image_ids: ``list`` of ``str``
:param      ex_owner: Owner name
:type       ex_owner: ``str``
:param      ex_executableby: Executable by
:type       ex_executableby: ``str``
:param      ex_filters: Filter by
:type       ex_filters: ``dict``
:rtype: ``list`` of :class:`NodeImage`'

def list_images(self, location=None, ex_image_ids=None, ex_owner=None, ex_executableby=None, ex_filters=None):

    params = {'Action': 'DescribeImages'}
    if ex_owner:
        params.update({'Owner.1': ex_owner})
    if ex_executableby:
        params.update({'ExecutableBy.1': ex_executableby})
    if ex_image_ids:
        for (index, image_id) in enumerate(ex_image_ids):
            index += 1
            params.update({('ImageId.%s' % index): image_id})
    if ex_filters:
        params.update(self._build_filters(ex_filters))
    images = self._to_images(self.connection.request(self.path, params=params).object)
    return images
