def iaasSelect(user, platformNo, isLb = False):
    logger = IaasLogger()
    conn = MysqlConnector(user)

    '''プラットフォームを判断しユーザー情報を取得する
    '''
    platforminfo = getPlatformProperty(platformNo)
    platformType =  platforminfo["platformType"]
    platformName =  platforminfo["platformName"]

    logger.info(u"      Platform::No[%s]::種別[%s]::名称[%s]" % (str(platformNo), platformType, platformName))

    #ユーザー取得
    userTable = conn.getTable("USER")
    userinfo = conn.selectOne(userTable.select(userTable.c.USER_NO==user))


    iaasController = None
    if platformType == "aws":
        if platformName == "eucalyptus":
            return
        #EC2 およびユーカリ
        #AWS_CERTIFICATE 取得
        certificateTable = conn.getTable("AWS_CERTIFICATE")
        certificate = conn.selectOne(certificateTable.select(and_(certificateTable.c.USER_NO==user,  certificateTable.c.PLATFORM_NO==platformNo)))
        accessInfo = {"ACCESS_ID": str(certificate["AWS_ACCESS_ID"]), "SECRET_KEY": str(certificate["AWS_SECRET_KEY"]), "USER": user, "USER_NAME": userinfo["USERNAME"]}
        iaasController = EC2Controller(conn, accessInfo, platforminfo, isLb)
    elif platformType == "vmware":
        #vmware
        pass
    elif platformType == "nifty":
        #nifty
        pass
    elif platformType == "cloudstack":
        #CloudStack
        certificateTable = conn.getTable("CLOUDSTACK_CERTIFICATE")
        certificate = conn.selectOne(certificateTable.select(and_(certificateTable.c.ACCOUNT==user, certificateTable.c.PLATFORM_NO==platformNo)))
        accessInfo = {"ACCESS_ID": str(certificate["CLOUDSTACK_ACCESS_ID"]), "SECRET_KEY": str(certificate["CLOUDSTACK_SECRET_KEY"]), "USER": user, "USER_NAME": userinfo["USERNAME"]}
        iaasController = CloudStackController(conn, accessInfo, platforminfo)
    else:
        raise IaasException("PlatformError", platformNo)

    return iaasController
def iaasSelect(user, platformNo, isLb=False):
    logger = IaasLogger()
    conn = MysqlConnector(user)
    '''プラットフォームを判断しユーザー情報を取得する
    '''
    platforminfo = getPlatformProperty(platformNo)
    platformType = platforminfo["platformType"]
    platformName = platforminfo["platformName"]

    logger.info(u"      Platform::No[%s]::種別[%s]::名称[%s]" %
                (str(platformNo), platformType, platformName))

    #ユーザー取得
    userTable = conn.getTable("USER")
    userinfo = conn.selectOne(userTable.select(userTable.c.USER_NO == user))

    iaasController = None
    if platformType == "aws":
        if platformName == "eucalyptus":
            return
        #EC2 およびユーカリ
        #AWS_CERTIFICATE 取得
        certificateTable = conn.getTable("AWS_CERTIFICATE")
        certificate = conn.selectOne(
            certificateTable.select(
                and_(certificateTable.c.USER_NO == user,
                     certificateTable.c.PLATFORM_NO == platformNo)))
        accessInfo = {
            "ACCESS_ID": str(certificate["AWS_ACCESS_ID"]),
            "SECRET_KEY": str(certificate["AWS_SECRET_KEY"]),
            "USER": user,
            "USER_NAME": userinfo["USERNAME"]
        }
        iaasController = EC2Controller(conn, accessInfo, platforminfo, isLb)
    elif platformType == "vmware":
        #vmware
        pass
    elif platformType == "nifty":
        #nifty
        pass
    elif platformType == "cloudstack":
        #CloudStack
        certificateTable = conn.getTable("CLOUDSTACK_CERTIFICATE")
        certificate = conn.selectOne(
            certificateTable.select(
                and_(certificateTable.c.ACCOUNT == user,
                     certificateTable.c.PLATFORM_NO == platformNo)))
        accessInfo = {
            "ACCESS_ID": str(certificate["CLOUDSTACK_ACCESS_ID"]),
            "SECRET_KEY": str(certificate["CLOUDSTACK_SECRET_KEY"]),
            "USER": user,
            "USER_NAME": userinfo["USERNAME"]
        }
        iaasController = CloudStackController(conn, accessInfo, platforminfo)
    elif platformType == "vcloud":
        #vCloud
        certificateTable = conn.getTable("VCLOUD_CERTIFICATE")
        certificate = conn.selectOne(
            certificateTable.select(
                and_(certificateTable.c.USER_NO == user,
                     certificateTable.c.PLATFORM_NO == platformNo)))
        accessInfo = {
            "ACCESS_ID": str(certificate["VCLOUD_ACCESS_ID"]),
            "SECRET_KEY": str(certificate["VCLOUD_SECRET_KEY"]),
            "USER": user,
            "USER_NAME": userinfo["USERNAME"]
        }
        iaasController = VCloudController(conn, accessInfo, platforminfo)
    elif platformType == "azure":
        #Azure
        certificateTable = conn.getTable("AZURE_CERTIFICATE")
        certificate = conn.selectOne(
            certificateTable.select(
                and_(certificateTable.c.USER_NO == user,
                     certificateTable.c.PLATFORM_NO == platformNo)))
        accessInfo = {
            "SUBSCRIPTION_ID": certificate["SUBSCRIPTION_ID"],
            "CERTIFICATE": certificate["CERTIFICATE"],
            "USER": user,
            "USER_NAME": userinfo["USERNAME"]
        }
        iaasController = AzureController(conn, accessInfo, platforminfo)
    elif platformType == "openstack":
        #OpenStack
        certificateTable = conn.getTable("OPENSTACK_CERTIFICATE")
        certificate = conn.selectOne(
            certificateTable.select(
                and_(certificateTable.c.USER_NO == user,
                     certificateTable.c.PLATFORM_NO == platformNo)))
        accessInfo = {
            "OS_ACCESS_ID": certificate["OS_ACCESS_ID"],
            "OS_SECRET_KEY": certificate["OS_SECRET_KEY"]
        }
        iaasController = OpenStackController(conn, accessInfo, platforminfo)
    else:
        raise IaasException("PlatformError", platformNo)

    return iaasController