'Retrieve and format the current service catalog.
Example::
{ \'RegionOne\':
{\'compute\': {
\'adminURL\': u\'http://host:8774/v1.1/project_id\',
\'internalURL\': u\'http://host:8774/v1.1/project_id\',
\'name\': \'Compute Service\',
\'publicURL\': u\'http://host:8774/v1.1/project_id\'},
\'ec2\': {
\'adminURL\': \'http://host:8773/services/Admin\',
\'internalURL\': \'http://host:8773/services/Cloud\',
\'name\': \'EC2 Service\',
\'publicURL\': \'http://host:8773/services/Cloud\'}}
:returns: A nested dict representing the service catalog or an
empty dict.
:raises keystone.exception.NotFound: If the endpoint doesn\'t exist.'

@abc.abstractmethod
def get_catalog(self, user_id, project_id):

    raise exception.NotImplemented()
