def session_post(session: SessionModel, service, api, data=None, json=None, **kwargs): def inner_func(session: SessionModel, service, api, data=None, json=None, **kwargs): url = getserviceUrl(session.host, session.port, service, api) headers = defaultRequestHeader() headers["hku_token"] = session.token r = post(url, data, json, headers=headers, **kwargs) if "update_token" in r: session.token = r["update_token"] return r session.running = False if not session.token: session = login(session) res = inner_func(session, service, api, data, json, **kwargs) if not res["result"] and (res['errcode'] == RestErrorCode.AUTHORIZE_EXPIRED or res['errcode'] == RestErrorCode.FAILED_AUTHORIZED): session = login(session) res = inner_func(session, service, api, data, json, **kwargs) session.running = True if res["result"] else False return res
def login(session: SessionModel): url = getserviceUrl(session.host, session.port, "user", "login") headers = defaultRequestHeader() res = post(url, headers=headers, json={"user": session.user, "password": session.password}) session.token = res["token"] session.userid = res["userid"] return session
def getServerStatus(session: SessionModel): try: r = session_get(session, "assist", "status") if r["result"]: session.running = True return "running", _translate("service", "running") else: session.running = False return "stop", _translate("service", "failed! {}").format(r["errmsg"]) except Exception as e: session.running = False logging.info("{}: {}".format(e.__class__.__name__, e)) return "stop", _translate("service", "failed connect!")
def inner_func(session: SessionModel, service, api, json, **kwargs): url = getserviceUrl(session.host, session.port, service, api) headers = defaultRequestHeader() headers["hku_token"] = session.token r = put(url, json=json, headers=headers, **kwargs) if "update_token" in r: session.token = r["update_token"] return r
def login(session: SessionModel): url = getserviceUrl(session.host, session.port, "user", "login") headers = defaultRequestHeader() sha = hashlib.sha256() sha.update(bytes(session.password, encoding='utf8')) pwd = sha.hexdigest() res = post(url, headers=headers, json={ "user": session.user, "password": pwd }) if res["result"]: session.token = res["token"] session.userid = res["userid"] else: raise RestfulError(res) return session
def actionNewSession(self): server_session = SessionModel() session_dialog = HkuEditSessionDialog(self) session_dialog.setWindowTitle(_translate("MainWindow", "New Session")) session_dialog.setData(server_session) if session_dialog.exec() >= 0: session_data = session_dialog.getData() session_data.save() self.server_view_dock.addSession(session_data) session_dialog.destroy()
def getData(self): if self.session_model is None: self.session_model = SessionModel() self.session_model.name = self.name self.session_model.host = self.host self.session_model.port = self.port self.session_model.user = self.user self.session_model.password = self.password self.session_model.remark = self.remark return self.session_model
def session_get(session: SessionModel, service, api, params=None, **kwargs): def inner_get(session: SessionModel, service, api, params, **kwargs): url = getserviceUrl(session.host, session.port, service, api) headers = defaultRequestHeader() headers["hku_token"] = session.token r = get(url, headers=headers, params=params, **kwargs) if "update_token" in r: session.token = r["update_token"] return r session.running = False if not session.token: session = login(session) res = inner_get(session, service, api, params, **kwargs) if not res["result"] and res['errcode'] == RestErrorCode.AUTHORIZE_EXPIRED: session = login(session) res = inner_get(session, service, api, params, **kwargs) session.running = True if res["result"] else False return res