async def hpc_sync_user(ns={}): if ns.get('loggers'): loggers = ns['loggers'] else: loggers = await loggerconfig(logname='hpc_jncs.log', logger="hpc_saleman_sync") db = DBPools() async with db.sqlorContext('kboss') as sor: # 如果已经同步过, 不再执行同步操作 sync_already_li = await sor.R('jncs_syncinfo', {'id': ns.get('syncinfoid'), 'del_flg': '0'}) if sync_already_li and sync_already_li[0]['sync_date']: if sync_already_li[0]['sync_status'] == '1': sync_already = { 'status': False, 'id': ns.get('syncinfoid'), 'msg': '这个账单已经同步过' } loggers.info(str(sync_already)) return sync_already url = 'https://hpc.kaiyuancloud.cn/rms/api/biz/user/addCTimeInfo' data = { "loginId": ns.get('orgid'), "loginName": ns.get('orgname'), "clusterCode": ns.get('clustercode'), "ldapUid": ns.get('ldapuid'), "queueCode": ns.get('queuecode'), "ctime": ns.get('quantity') } # get cookie cookie_url = "https://hpc.kaiyuancloud.cn/rms/api/sign" cipher = "WIfHaMnen2WaRw4Agwenoe6TwDD3LxBbLEgMjVKDHADPE7xDJicjSG3yAfK4iNes1vUmVcoTxV2/+gMfla8ZDg==" # response_cookie = requests.post(url=cookie_url, data={"cipher": cipher}) async with aiohttp_client.request( method='POST', url=cookie_url, data={"cipher": cipher}) as res_cipher: res_cipher_cookie = res_cipher.headers.get("Set-Cookie") # res = requests.post(url=url, headers=headerss, data=data) async with aiohttp_client.request( method='POST', url=url, headers={"Cookie": res_cipher_cookie}, data=data) as res: res_json = await res.json() if res.status == 200: if res_json.get('code') == 200: # update orgid status syncinfo_update = { 'id': ns.get('syncinfoid'), 'queuecode': ns.get('queuecode'), 'clustercode': ns.get('clustercode'), 'sync_date': time.strftime('%Y-%m-%d'), 'sync_status': '1' } usermap_udpate_sql = """UPDATE jncs_usermapping SET sync_status = '1' WHERE ldapuid = '%s' and clustercode = '%s' and queuecode = '%s' and orgid = '%s';""" % (ns.get('ldapuid'), ns.get('clustercode'), ns.get('queuecode'), ns.get('orgid')) await sor.U('jncs_syncinfo', syncinfo_update) await sor.sqlExe(usermap_udpate_sql, {}) return_res = { 'status': True, 'msg': '超算账号: %s, 核时: %s, 同步成功' % (data.get('loginName'), data.get('ctime')), 'sync_time': time.strftime('%Y-%m-%d %H:%M:%S'), 'data': res_json } loggers.info(str(return_res)) return return_res else: return_res = { 'status': False, 'msg': 'jncs account: %s, ctime: %s, 同步失败' % (data.get('loginName'), data.get('ctime')), 'data': res_json, 'sync_time': time.strftime('%Y-%m-%d %H:%M:%S') } loggers.info(str(return_res)) return return_res ret = await hpc_sync_user(params_kw) return ret