#! /usr/bin/env python
# -*- coding: utf-8 -*-
from QcloudApi.modules import base
class QcloudApi(object):
def __init__(self, module, config):
self.module = module
self.config = config
def _factory(self, module, config):
if (module == 'cdb'):
from .modules.cdb import Cdb
service = Cdb(config)
elif (module == 'account'):
from .modules.account import Account
service = Account(config)
elif (module == 'cvm'):
from .modules.cvm import Cvm
service = Cvm(config)
elif (module == 'image'):
from .modules.image import Image
service = Image(config)
elif (module == 'lb'):
from .modules.lb import Lb
service = Lb(config)
elif (module == 'sec'):
from .modules.sec import Sec
service = Sec(config)
elif (module == 'trade'):
from .modules.trade import Trade
service = Trade(config)
elif (module == 'bill'):
from .modules.bill import Bill
service = Bill(config)
elif (module == 'monitor'):
from .modules.monitor import Monitor
service = Monitor(config)
elif (module == 'cdn'):
from .modules.cdn import Cdn
service = Cdn(config)
elif (module == 'vpc'):
from .modules.vpc import Vpc
service = Vpc(config)
elif (module == 'vod'):
from .modules.vod import Vod
service = Vod(config)
elif (module == 'yunsou'):
from .modules.yunsou import Yunsou
service = Yunsou(config)
elif (module == 'wenzhi'):
from .modules.wenzhi import Wenzhi
service = Wenzhi(config)
elif (module == 'market'):
from .modules.market import Market
service = Market(config)
elif (module == 'live'):
from .modules.live import Live
service = Live(config)
elif (module == 'eip'):
from .modules.eip import Eip
service = Eip(config)
elif (module == 'cbs'):
from .modules.cbs import Cbs
service = Cbs(config)
elif (module == 'snapshot'):
from .modules.snapshot import Snapshot
service = Snapshot(config)
elif (module == 'scaling'):
from .modules.scaling import Scaling
service = Scaling(config)
elif (module == 'cmem'):
from .modules.cmem import Cmem
service = Cmem(config)
elif (module == 'tdsql'):
from .modules.tdsql import Tdsql
service = Tdsql(config)
elif (module == 'bm'):
from .modules.bm import Bm
service = Bm(config)
elif (module == 'bmlb'):
from .modules.bmlb import Bmlb
service = Bmlb(config)
elif (module == 'redis'):
from .modules.redis import Redis
service = Redis(config)
elif (module == 'dfw'):
from .modules.dfw import Dfw
service = Dfw(config)
elif (module == 'ccs'):
from .modules.ccs import Ccs
service = Ccs(config)
elif (module == 'feecenter'):
from .modules.feecenter import Feecenter
service = Feecenter(config)
elif (module == 'cns'):
from .modules.cns import Cns
service = Cns(config)
elif (module == 'bmeip'):
from .modules.bmeip import Bmeip
service = Bmeip(config)
elif (module == 'bmvpc'):
from .modules.bmvpc import Bmvpc
service = Bmvpc(config)
elif module == 'bgpip':
from .modules.bgpip import Bgpip
service = Bgpip(config)
elif module == 'scf':
from .modules.scf import Scf
service = Scf(config)
elif module == 'apigateway':
from .modules.apigateway import APIGateway
service = APIGateway(config)
elif module == 'batch':
from .modules.batch import Batch
service = Batch(config)
elif module == 'cloudaudit':
from .modules.cloudaudit import CloudAudit
service = CloudAudit(config)
elif module == 'tmt':
from .modules.tmt import Tmt
service = Tmt(config)
elif module == 'partners':
from .modules.partners import Partners
service = Partners(config)
elif module == 'tbaas':
from .modules.tbaas import Tbaas
service = Tbaas(config)
elif module == 'athena':
from .modules.athena import Athena
service = Athena(config)
elif module == 'emr':
from .modules.emr import Emr
service = Emr(config)
elif module == 'sts':
from .modules.sts import Sts
service = Sts(config)
elif module == 'ccr':
from .modules.ccr import Ccr
service = Ccr(config)
elif module == 'dc':
from .modules.dc import Dc
service = Dc(config)
else:
config.setdefault("endpoint", module + '.api.qcloud.com')
service = base.Base(config)
return service
def setSecretId(self, secretId):
self.config['secretId'] = secretId
def setSecretKey(self, secretKey):
self.config['secretKey'] = secretKey
def setRequestMethod(self, method):
self.config['method'] = method
def setRegion(self, region):
self.config['Region'] = region
def setSignatureMethod(self, SignatureMethod):
self.config['SignatureMethod'] = SignatureMethod
def generateUrl(self, action, params):
service = self._factory(self.module, self.config)
return service.generateUrl(action, params)
def call(self, action, params, req_timeout=None, debug=False):
"""
@type action: string
@param action: action interface
@type params: dict
@param params: interface parameters
@type req_timeout: int
@param req_timeout: request timeout(seconds)
@type debug: bool
@param debug: debug switch
"""
service = self._factory(self.module, self.config)
if req_timeout is not None:
service.set_req_timeout(req_timeout)
if debug:
service.open_debug()
methods = dir(service)
for method in methods:
if (method == action):
func = getattr(service, action)
return func(params)
return service.call(action, params)