# Buggy code
def cmdb_get_mainline_object_topo(request, bk_biz_id, bk_supplier_account=""):
    """
    @summary: 获取配置平台业务拓扑模型
    @param request:
    @param bk_biz_id:
    @param bk_supplier_account:
    @return:
    """
    kwargs = {
        "bk_biz_id": bk_biz_id,
        "bk_supplier_account": bk_supplier_account,
    }
    client = get_client_by_request(request)
    cc_result = client.cc.get_mainline_object_topo(kwargs)
    if not cc_result["result"]:
        message = handle_api_error(
            _("配置平台(CMDB)"),
            "cc.get_mainline_object_topo",
            kwargs,
            cc_result["message"],
        )
        return {
            "result": cc_result["result"],
            "code": cc_result["code"],
            "message": message,
        }
    data = cc_result["data"]
    for bk_obj in data:
        if bk_obj["bk_obj_id"] == "host":
            bk_obj["bk_obj_name"] = "IP"
    result = {
        "result": cc_result["result"],
        "code": cc_result["code"],
        "data": cc_result["data"],
    }
    return JsonResponse(result)


# Traceback (ImportError)
------STARTING: Migrate Database------
Traceback (most recent call last):
File "manage.py", line 27, in <module>
execute_from_command_line(sys.argv)
File "/cache/.bk/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
utility.execute()
File "/cache/.bk/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 328, in execute
django.setup()
File "/cache/.bk/env/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/cache/.bk/env/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/cache/.bk/env/lib/python2.7/site-packages/django/apps/config.py", line 112, in create
mod = import_module(mod_path)
File "/cache/.bk/env/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/data/app/code/pipeline/apps.py", line 18, in <module>
from rediscluster import StrictRedisCluster
File "/cache/.bk/env/lib/python2.7/site-packages/rediscluster/__init__.py", line 7, in <module>
from .client import StrictRedisCluster, RedisCluster
File "/cache/.bk/env/lib/python2.7/site-packages/rediscluster/client.py", line 10, in <module>
from .connection import (
File "/cache/.bk/env/lib/python2.7/site-packages/rediscluster/connection.py", line 11, in <module>
from .nodemanager import NodeManager
File "/cache/.bk/env/lib/python2.7/site-packages/rediscluster/nodemanager.py", line 12, in <module>
from redis._compat import b, unicode, bytes, long, basestring
ImportError: cannot import name b
------FAILURE: Migrate Database------

# Fixed code
def cmdb_get_mainline_object_topo(request, bk_biz_id, bk_supplier_account=""):
    """
    @summary: 获取配置平台业务拓扑模型
    @param request:
    @param bk_biz_id:
    @param bk_supplier_account:
    @return:
    """
    kwargs = {
        "bk_biz_id": bk_biz_id,
        "bk_supplier_account": bk_supplier_account,
    }
    client = get_client_by_user(request.user.username)
    cc_result = client.cc.get_mainline_object_topo(kwargs)
    if not cc_result["result"]:
        message = handle_api_error(
            _("配置平台(CMDB)"),
            "cc.get_mainline_object_topo",
            kwargs,
            cc_result["message"],
        )
        return {
            "result": cc_result["result"],
            "code": cc_result["code"],
            "message": message,
        }
    data = cc_result["data"]
    for bk_obj in data:
        if bk_obj["bk_obj_id"] == "host":
            bk_obj["bk_obj_name"] = "IP"
    result = {
        "result": cc_result["result"],
        "code": cc_result["code"],
        "data": cc_result["data"],
    }
    return JsonResponse(result)