Esempio n. 1
0
def clearSession(db=None):

    if (not db):
        db = dbmysql.mysqldb()

    cond = "WHERE S_ExpireTime < %ld" % get_current_time()
    db.delete(TB_SESSION, cond=cond)
Esempio n. 2
0
def callWebServiceEX(*args):
	function = args[-4]
	session = args[-3]
	arg = args[-2]
	apiProto = args[-1]

	if (apiProto):
		arg["apiName"] = apiProto["name"]

	env = web_get_env(session)
	db = dbmysql.mysqldb()

	try:
		funret = function(db, env, arg)
	except Exception as e:
		errorLog = "Error in %s: [%s],\n Import module failed. [%s]" % (function, e, traceback.format_exc(limit=100))
		errorLog = errorLog.replace("\n", "")
		errorLog = errorLog.replace("\"", "\\\"")
		ERROR(errorLog)

		retObj = buildResult(OCT_SYSTEM_ERR, errorLog=errorLog)
		if (arg.get("async") != True):
			retObj = writeApiWithResult(db, env, arg, retObj, apiProto, False)
			retObj["session"] = session

		del db, env
		return retObj

	retObj = makeFunctionResult(funret)
	if (arg.get("async") != True):
		retObj = writeApiWithResult(db, env, arg, retObj, apiProto, False)
		retObj["session"] = session
	del db, env

	return retObj
Esempio n. 3
0
    def post(self):

        # Step 1, Login with default account
        argObj = getArgObj(self.request)
        paras = {
            "account": self.get_argument("username"),
            "password": self.get_argument("password"),
            "role": 7,
        }
        argObj["api"] = "octlink.tundra.v1.account.APILoginByAccount"
        argObj["paras"] = paras

        self.db = dbmysql.mysqldb()
        session = getSessionObj(self.db,
                                sessionId="00000000000000000000000000000000")
        del self.db

        argObj["session"] = session
        retObj = doDispatching(argObj, session, API_PROTOS)
        if retObj["RetCode"] != OCT_SUCCESS:
            ERROR("login error %s" % str(retObj))
            self.redirect("/login/?error=true")
        else:
            sessionObj = retObj["RetObj"]["session"]
            self.set_cookie("rvmusercookie", sessionObj["id"])
            self.set_cookie("username", retObj["RetObj"]["name"])
            self.set_cookie("userid", retObj["RetObj"]["id"])
            self.redirect("/")
Esempio n. 4
0
def handleTshService(s_name, env, arg):

	calllist = s_name.split('.')
	modulepath = calllist[:-1]
	funname = calllist[-1]

	db = dbmysql.mysqldb()

	DEBUG("Function name %s" % funname)

	try:
		service = __import__('modules'+'.'+'.'.join(modulepath), fromlist=['from modules import',])
	except Exception as e:
		ERROR('Import module failed. [%s]' % s_name)
		ERROR('Import module failed. [%s]' % e)
		ERROR('Import module failed. [%s]' % traceback.format_exc())
		del db, env
		return buildResult(SYSTEM_ERR)

	if hasattr(service, funname):
		funobj = getattr(service, funname)
	else:
		ERROR('There is no %s in %s' % (funname, modulepath))
		del db, env, service
		return buildResult(SYSTEM_ERR)

	del service

	try:
		funret = funobj(db, env, arg)
		DEBUG(funret)
	except Exception as arg:
		ERROR('Error in %s: [%s]' % (s_name, arg))
		ERROR('Import module failed. [%s]' % traceback.format_exc())
		del funobj, db, env
		return buildResult(SYSTEM_ERR)

	del funobj, db, env

	RetCode = funret.get('RetCode')
	if type(RetCode) != int:
		ERROR('Wrong formatstr in function return data %s: [%s],ret[%s]' % (s_name, arg, funret))
		return buildResult(SYSTEM_ERR)
	
	retObj = buildResult(RetCode, funret.get('RetObj'))
	retObj["RetMsg"] = err_desc_en.get(RetCode, '')

	return retObj
Esempio n. 5
0
    def get(self):

        cookie = self.get_cookie("usercookie", "")
        username = self.get_cookie("username", "")
        userid = self.get_cookie("userid", "")

        if not cookie:
            self.redirect("/login/")
            return

        self.db = dbmysql.mysqldb()
        session = getSession(self.db, sessionId=cookie)
        del self.db
        if not session:
            self.redirect("/login/")
            return

        self.render("index.html")
Esempio n. 6
0
    def post(self):

        self.db = dbmysql.mysqldb()

        if isSystemWindows():
            filePath = "var/tmp/" + getUuid()
        else:
            filePath = "/tmp/" + getUuid()

        # get the request file to cache path
        try:
            file_metas = self.request.files['file']
        except:
            file_metas = self.request.files['filename']

        for meta in file_metas:
            with open(filePath, 'wb') as up:
                up.write(meta['body'])

        argObj = appendBaseArg({}, self.request)
        argObj["paras"]["role"] = 7
        argObj["paras"]["accountId"] = DEFAULT_ACCOUNT_ID

        api_key = self.get_argument("api", None)
        if (not api_key):
            self.write(
                buildFailureReply(UNACCP_PARAS, errorMsg="api key error"))
            self.finish()
            return

        argObj["paras"]["filePath"] = filePath
        argObj["api"] = UPLOAD_API_MAP.get(api_key)
        if (not argObj["api"]):
            self.write(buildFailureReply(UNACCP_PARAS, errorMsg=api_key))
            self.finish()
            return

        session = getSession(self.db,
                             sessionId="00000000000000000000000000000000")

        argObj["session"] = session
        retObj = doDispatching(argObj, session, API_PROTOS)
        self.write(buildReply(retObj))
        self.finish()
Esempio n. 7
0
    def get(self):

        cookie = self.get_cookie("rvmusercookie", "")
        username = self.get_cookie("username", "")
        userid = self.get_cookie("userid", "")
        accountname = self.get_cookie("accountname", "admin")

        if not cookie:
            self.redirect("/login/")
            return

        self.db = dbmysql.mysqldb()
        session = getSessionObj(self.db, sessionId=cookie)
        del self.db
        if not session:
            self.redirect("/login/")
            return

        self.render("userportal/userportal.html",
                    USER_NAME=username,
                    USER_ID=userid,
                    ACCOUNT_NAME=accountname,
                    SESSION_ID=session["id"])
Esempio n. 8
0
def get_vminfo_fromdb(dbname):
    BANK_ADDR = "/OCT/OCTFrame/core/membank/%s"
    membody = memcache.get_mem(dbname, BANK_ADDR)
    global tablelist
    tablelist = membody.get('tablelist', {})

    db = dbmysql.mysqldb()

    info = {}
    numberinfo = get_vmnumber_fromdb(db, dbname)
    info["totalVm"] = numberinfo[0]
    info["runningVm"] = numberinfo[1]

    cpuinfo = get_cpuinfo_fromdb(db, dbname)
    info["vcpuTotal"] = cpuinfo[0]
    info["vcpuUsed"] = cpuinfo[1]
    info["vcpuAlloc"] = cpuinfo[2]

    meminfo = get_meminfo_fromdb(db, dbname)
    info["totalMem"] = meminfo[0]
    info["vmTotalMem"] = meminfo[1]
    info["vmUsedMem"] = meminfo[2]

    return info
Esempio n. 9
0
    def __init__(self, application, request, **kwargs):
        super(ApiHandler, self).__init__(application, request, **kwargs)

        self.db = dbmysql.mysqldb()
Esempio n. 10
0
			sys.exit(1)

	with open("/OCT/etc/internal_version", "r") as fd:
		content = fd.readline()

		if "center" in content or "RVMCenter" in content:
			PLATFORM = "center"
		elif "allinone" in content:
			PLATFORM = "allinone"
		else:
			PLATFORM = "server"

	if PLATFORM == "server":
		WARNING("rvm server no need get log info")
		sys.exit(1)

	if VERSION == '3':
		DB_NAME = 'octlog'
	else: 
		DB_NAME = 'dbcenter'

	BANK_ADDR = "/OCT/OCTFrame/core/membank/%s"
	membody = memcache.get_mem(DB_NAME, BANK_ADDR)
	tablelist = membody.get('tablelist', {}) 

	db = dbmysql.mysqldb()
	loginfo = get_log(db, DB_NAME)
	print(loginfo)

	del db