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