'List node image publishers.
:param location: The location at which to list publishers
(if None, use default location specified as \'region\' in __init__)
:type location: :class:`.NodeLocation`
:return: A list of tuples in the form
("publisher id", "publisher name")
:rtype: ``list``'

def ex_list_publishers(self, location=None):

    if (location is None):
        if self.default_location:
            location = self.default_location
        else:
            raise ValueError('location    is    required.')
    action = ('/subscriptions/%s/providers/Microsoft.Compute/locations/%s/publishers' % (self.subscription_id, location.id))
    r = self.connection.request(action, params={'api-version': '2015-06-15'})
    return [(p['id'], p['name']) for p in r.object]
