async def METHOD_NAME(storage_client, cf_mgr, south_services):
    sr_list = list()
    try:
        try:
            services_from_registry = ServiceRegistry.get(s_type="Southbound")
        except DoesNotExist:
            services_from_registry = []
        def is_svc_in_service_registry(name):
            return next((svc for svc in services_from_registry if svc._name == name), None)
        installed_plugins = _get_installed_plugins()
        for s_record in services_from_registry:
            plugin, assets = await _get_tracked_plugin_assets_and_readings(storage_client, cf_mgr, s_record._name)
            plugin_version = ''
            for p in installed_plugins:
                if p["name"] == plugin:
                    plugin_version = p["version"]
                    break
            # Service running on another machine have no scheduler entry
            sched_enable = 'unknown'
            try:
                sched_enable = await _get_schedule_status(storage_client, s_record._name)
            except:
                pass
            sr_list.append(
                {
                    'name': s_record._name,
                    'address': s_record._address,
                    'management_port': s_record._management_port,
                    'service_port': s_record._port,
                    'protocol': s_record._protocol,
                    'status': ServiceRecord.Status(int(s_record._status)).name.lower(),
                    'assets': assets,
                    'plugin': {'name': plugin, 'version': plugin_version},
                    'schedule_enabled': sched_enable
                })
        for s_name in south_services:
            south_svc = is_svc_in_service_registry(s_name)
            if not south_svc:
                plugin, assets = await _get_tracked_plugin_assets_and_readings(storage_client, cf_mgr, s_name)
                plugin_version = ''
                for p in installed_plugins:
                    if p["name"] == plugin:
                        plugin_version = p["version"]
                        break
                # Handle schedule status when there is no schedule entry matching a South child category name
                sch_status = 'unknown'
                try:
                    sch_status = await _get_schedule_status(storage_client, s_name)
                except:
                    pass
                sr_list.append(
                    {
                        'name': s_name,
                        'address': '',
                        'management_port': '',
                        'service_port': '',
                        'protocol': '',
                        'status': '',
                        'assets': assets,
                        'plugin': {'name': plugin, 'version': plugin_version},
                        'schedule_enabled': sch_status
                    })
    except:
        raise
    else:
        return sr_list