@classmethod
def requirements(cls, srv, include_ip=False, indent='', format='text'):
    """
        Describe the requirements of a server by providing a tree view of the requirements
        :param srv:
        :param indent:
        :return:
        """
    res = []
    try:
        requires = cls._ocean._get(srv).get('requires', [])
        ip = ''
        if include_ip:
            ip = cls._ocean.get_ip(srv)
            if format == 'text' and ip in [None, '']:
                ip = 'not running'
        if format == 'text':
            others = ''
            if include_ip:
                others = ' (%s)' % (ip,)
            res.append(indent + srv + others)
        else:
            res.append((srv, ip))
        for x in sorted(requires):
            res += cls.requirements(x, include_ip=include_ip, indent=indent +
                ' ' * 4)
    except BaseException:
        res.append(indent + srv + '[Not found !]')
    if not len(indent) and format == 'text':
        res = '\n'.join(res)
    return res
