def exposed_get_executions(self, session_id, token, env, tenant_id, instance_id): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if (operator_info and int.from_bytes(operator_info[0]['dominated'], 'big')): env_info = environments.get(self.host, self.user, self.passwd, env) else: env_info = environments.get(self.host, self.user, self.passwd, env, operator) if env_info: read_host = env_info[0]['read_host'] db_user = env_info[0]['user'] db_passwd = env_info[0]['passwd'] tenant_db = tenants.get_tenant_db(read_host, db_user, db_passwd, tenant_id) if tenant_db: tenant_db_name = tenant_db[0]['tenant_db'] result = executions.list_by_procinstid( read_host, db_user, db_passwd, tenant_db_name, tenant_id, instance_id) else: result = 2 # 找不到商户数据库 else: result = 1 # 环境无效 mnemosyne.create(self.host, self.user, self.passwd, 'execution', operator, 3, 1 if isinstance(result, int) else 0) else: # token失效 return -1 return result
def exposed_update_user_status(self, session_id, token, user_status, user_id): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if (operator_info and int.from_bytes(operator_info[0]['dominated'], 'big')): result = users.update_user_status(self.host, self.user, self.passwd, user_status, user_id) for k, v in list(self.login_users.items()): if v['id'] == user_id: del self.login_users[k] else: result = 2 # 用户权限不足 mnemosyne.create(self.host, self.user, self.passwd, 'user', operator, 2, 1 if result else 0) else: # token失效 result = -1 return result
def exposed_get_tenant_detail(self, session_id, token, env, tenant_id): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if (operator_info and int.from_bytes(operator_info[0]['dominated'], 'big')): env_info = environments.get(self.host, self.user, self.passwd, env) else: env_info = environments.get(self.host, self.user, self.passwd, env, operator) if env_info: read_host = env_info[0]['read_host'] db_user = env_info[0]['user'] db_passwd = env_info[0]['passwd'] result = tenants.get_detail(read_host, db_user, db_passwd, tenant_id) else: result = 1 # 环境无效 mnemosyne.create(self.host, self.user, self.passwd, 'tenant', operator, 3, 1 if isinstance(result, int) else 0) else: # token失效 return -1 return result
def exposed_create_user(self, session_id, token, username, passwd, user_permission): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if (operator_info and int.from_bytes(operator_info[0]['dominated'], 'big')): result = 999 # 是否存在重复的用户 dup_user = users.find_duplicate(self.host, self.user, self.passwd, username) if dup_user is None: result = 1 # 数据库错误 elif dup_user: return dup_user[0]['name'] else: # 插入数据库 result = 0 if users.create(self.host, self.user, self.passwd, username, passwd, user_permission): result = 1 else: result = 2 # 用户权限不足 mnemosyne.create(self.host, self.user, self.passwd, 'user', operator, 1, 1 if result else 0) else: # token失效 result = -1 return result
def exposed_update_env(self, session_id, token, env, read_host, write_host, user, passwd): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if (operator_info and int.from_bytes(operator_info[0]['dominated'], 'big')): result = 999 if write_host and user and passwd: result1 = 0 result2 = 0 if read_host: result1 = mysql.test(read_host, user, passwd) result2 = mysql.test(write_host, user, passwd) result = result1 + result2 if not result: # 是否存在重复的环境 dup_env = environments.find_duplicate( self.host, self.user, self.passwd, env, read_host, write_host) if dup_env is None: result = 3 # 数据库错误 else: if dup_env: dup_envname = dup_env[0]['name'] if dup_envname != env: return dup_envname # 更新数据库 if environments.update(self.host, self.user, self.passwd, env, read_host, write_host, user, passwd): result = 3 # 数据库错误 else: result = 2 # 写库连接失败 else: result = 4 # 用户权限不足 mnemosyne.create(self.host, self.user, self.passwd, 'environment', operator, 2, 1 if result else 0) else: # token失效 result = -1 return result
def exposed_get_current_user(self, session_id, token): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if operator_info: result = operator_info[0] else: result = 2 # 出错 mnemosyne.create(self.host, self.user, self.passwd, 'user', operator, 3, 1 if result else 0) else: # token失效 result = -1 return result
def exposed_get_user(self, session_id, token, user_id): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if (operator_info and int.from_bytes(operator_info[0]['dominated'], 'big')): result = users.get(self.host, self.user, self.passwd, user_id) else: result = 2 # 用户权限不足 mnemosyne.create(self.host, self.user, self.passwd, 'user', operator, 3, 1 if result else 0) else: # token失效 result = -1 return result
def exposed_update_env_name(self, session_id, token, env, new_env): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if (operator_info and int.from_bytes(operator_info[0]['dominated'], 'big')): result = environments.update_name(self.host, self.user, self.passwd, env, new_env) else: result = 2 # 用户权限不足 mnemosyne.create(self.host, self.user, self.passwd, 'environment', operator, 2, 1 if result else 0) else: # token失效 result = -1 return result
def exposed_validate_application(self, env, session_id, token, params, param_type, tenant_id): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if (operator_info and int.from_bytes(operator_info[0]['dominated'], 'big')): env_info = environments.get(self.host, self.user, self.passwd, env) else: env_info = environments.get(self.host, self.user, self.passwd, env, operator) if env_info: read_host = env_info[0]['read_host'] db_user = env_info[0]['user'] db_passwd = env_info[0]['passwd'] tenant_db = tenants.get_tenant_db(read_host, db_user, db_passwd, tenant_id) if tenant_db: tenant_db_name = tenant_db[0]['tenant_db'] if param_type == 'KEY': result = applications.list_by_keys( read_host, db_user, db_passwd, tenant_db_name, tenant_id, params) elif param_type == 'FLOWNO': result = applications.list_by_flownos( read_host, db_user, db_passwd, tenant_db_name, tenant_id, params) else: result = 2 # 找不到商户数据库 else: result = 1 # 环境无效 mnemosyne.create(self.host, self.user, self.passwd, 'application', operator, 3, 1 if isinstance(result, int) else 0) else: # token失效 return -1 return result
def exposed_update_own_passwd(self, session_id, token, passwd): if (session_id in self.login_users and token == self.login_users[session_id]['token']): # token有效 operator = self.login_users[session_id]['id'] # 检查用户权限 operator_info = users.get(self.host, self.user, self.passwd, operator) if operator_info: result = users.update_passwd(self.host, self.user, self.passwd, operator_info[0]['id'], passwd) for k, v in list(self.login_users.items()): if v['id'] == operator_info[0]['id']: del self.login_users[k] else: result = 2 # 出错 mnemosyne.create(self.host, self.user, self.passwd, 'user', operator, 2, 1 if result else 0) else: # token失效 result = -1 return result