78 lines
3.6 KiB
Plaintext
78 lines
3.6 KiB
Plaintext
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 |