224 lines
6.7 KiB
Plaintext
224 lines
6.7 KiB
Plaintext
# -*- coding: utf-8 -*-
|
||
# @Time: 2023/5/15 13:44
|
||
|
||
import os
|
||
import sys
|
||
sys.path.append('D:/Code/backend_code/test_')
|
||
import time
|
||
import json
|
||
import asyncio
|
||
import datetime
|
||
import requests
|
||
from uuid_ import uuid
|
||
from sqlor.dbpools import DBPools
|
||
from urllib.parse import urlencode
|
||
from appPublic.jsonConfig import getConfig
|
||
from accounting.businessdate import get_business_date, new_business_date
|
||
|
||
base_url = 'https://hpc.kaiyuancloud.cn/rms/api'
|
||
|
||
def imitate_cookie():
|
||
url = base_url + "/sign"
|
||
print(url)
|
||
cipher = "WIfHaMnen2WaRw4Agwenoe6TwDD3LxBbLEgMjVKDHADPE7xDJicjSG3yAfK4iNes1vUmVcoTxV2/+gMfla8ZDg=="
|
||
|
||
response = requests.post(url=url, data={"cipher": cipher})
|
||
print("rms/api", response.text)
|
||
|
||
cookie = response.headers.get("Set-Cookie")
|
||
print("Cookie", cookie)
|
||
return cookie
|
||
|
||
def get_cluster_list():
|
||
"""
|
||
¼¯Èº²éѯ
|
||
:return:
|
||
"""
|
||
url = base_url + "/biz/cluster/list?"
|
||
data = {
|
||
'clusterCode': 'shanhe',
|
||
'clusterName': 'ɽºÓ'
|
||
}
|
||
url_form = url + urlencode(data)
|
||
print(url_form)
|
||
response = requests.get(url, headers=headers)
|
||
print("cluster/list", response.text)
|
||
|
||
def get_queue_list():
|
||
"""
|
||
²éѯ¶ÓÁÐÁбí
|
||
:return:
|
||
"""
|
||
url = base_url + '/biz/queue/list'
|
||
print(url)
|
||
data = {
|
||
'clusterCode': 'shanhe'
|
||
}
|
||
url_data = url + '?' + urlencode(data)
|
||
response = requests.get(url=url_data, headers=headers)
|
||
print(response.text)
|
||
|
||
def get_queue_info():
|
||
"""
|
||
²éѯ¶ÓÁÐÏêÇé
|
||
:return:
|
||
"""
|
||
url = base_url + '/biz/queue/getInfo'
|
||
data = {
|
||
'clusterCode': 'shanhe',
|
||
'queueName': 'q_ys_test2',
|
||
'queueCode': 'q_ys_test2'
|
||
}
|
||
url_data = url + '?' + urlencode(data)
|
||
response = requests.get(url=url_data, headers=headers)
|
||
print(response.text)
|
||
|
||
def get_ldap_list():
|
||
"""
|
||
²éѯldapÁбí
|
||
:return:
|
||
"""
|
||
url = base_url + '/biz/ldap/list'
|
||
print(url)
|
||
data = {
|
||
'clusterCode': 'shanhe'
|
||
}
|
||
url_data = url + '?' + urlencode(data)
|
||
print(url_data)
|
||
response = requests.get(url=url_data, headers=headers)
|
||
print(response.text)
|
||
|
||
def get_ldap_info():
|
||
"""
|
||
²éѯldapÏêÇé
|
||
:return:
|
||
"""
|
||
# url = base_url + '/biz/ldap/userInfo'
|
||
url = base_url + '/biz/ldap/list?clusterCode=shanhe&clusterName=ɽºÓ'
|
||
print(url)
|
||
# data = {
|
||
# "clusterCode":"shanhe",
|
||
# "clusterName":"ɽºÓ",
|
||
# "ldapUid":"q_ys_test1",
|
||
# }
|
||
response = requests.get(url=url, headers=headers)
|
||
print(response.text)
|
||
|
||
def get_ldap_storageInfo():
|
||
"""
|
||
²éѯÕ˺ÅÏ´洢
|
||
:return:
|
||
"""
|
||
url = base_url + '/biz/ldap/storageInfo'
|
||
data = {
|
||
'clusterCode': 'shanhe',
|
||
'ldapUid Ldap': 'bz1'
|
||
}
|
||
url_data = url + '?' + urlencode(data)
|
||
response = requests.get(url=url_data, headers=headers)
|
||
print(response.text)
|
||
|
||
async def SyncUsers(ns={}):
|
||
url = base_url + '/biz/user/addCTimeInfo'
|
||
data = {
|
||
"loginId":"APPbNUfV5Im_KlZNnBRjd", # Óû§ id£¨±ØÌ
|
||
"loginName":"ÖéÄÂÀÊÂê", # Óû§Ãû³Æ£¨±ØÌ
|
||
"clusterCode":"shanhe", # ¼¯Èº±àÂ루±ØÌ
|
||
"ldapUid":"yeesuan11225", # ldap Õ˺ÅÃû³Æ£¨±ØÌ
|
||
"queueCode":"q_ys_test1", # ¶ÓÁбàÂ루±ØÌ
|
||
"ctime":1, # ºËʱÊýÁ¿£¨±ØÌî ctime>0£© double
|
||
}
|
||
res = requests.post(url=url, headers=headers, data=data)
|
||
print(res.status_code)
|
||
print(res.content.decode())
|
||
|
||
|
||
async def GetUserBill(ns={}):
|
||
"""
|
||
-> »ñÈ¡bill -> ͬ²½µ½jncs_bill table
|
||
-> ͨ¹ý(loginId(¼´orgid)=customerid,providerrid, productname)ÕÒµ½resourceid
|
||
-> ͬ²½µ½resource_using table -> ¸üÐÂcustomer_goods table
|
||
:param ns:
|
||
:return:
|
||
"""
|
||
orgname = '¼ÃÄϳ¬Ëã'
|
||
url = base_url + '/biz/user/cTimeInfoList'
|
||
data = {
|
||
'loginId': '86ee065f-2a3a-416c-b0df-5c759988ebbb',
|
||
'loginName': 'bakerwm'
|
||
}
|
||
url_data = url + '?' + urlencode(data)
|
||
res = requests.get(url=url_data, headers=headers)
|
||
if res.status_code != 200:
|
||
return {
|
||
'status': False,
|
||
'msg': 'url get status code is not 200, %s' % url_data
|
||
}
|
||
res_dict = json.loads(res.text)
|
||
db = DBPools()
|
||
async with db.sqlorContext('kboss') as sor:
|
||
try:
|
||
current_date = await get_business_date(sor)
|
||
ns_jncs_bill = {
|
||
'id': uuid(),
|
||
'bill_date': current_date,
|
||
'bill_timestamp': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||
'loginid': res_dict.get('loginId') or '',
|
||
'loginname': res_dict.get('loginName') or '',
|
||
'clustercode': res_dict.get('clusterCode') or '',
|
||
'clustername': res_dict.get('clusterName') or '',
|
||
'queuecode': res_dict.get('queueCode') or '',
|
||
'queuename': res_dict.get('queueName') or '',
|
||
'totalctime': res_dict.get('totalCtime') or '',
|
||
'usedctime': res_dict.get('usedCtime') or '',
|
||
'remainctime': res_dict.get('remainCtime') or '',
|
||
'expiredctime': res_dict.get('expiredCtime') or ''
|
||
}
|
||
jncs_li = await sor.R('organization', {'orgname': orgname, 'del_flg': '0'})
|
||
if jncs_li:
|
||
jscs_id = jncs_li[0].get('id')
|
||
else:
|
||
return {
|
||
'status': False,
|
||
'msg': 'can not find jncs id in organization'
|
||
}
|
||
ns_goods = {
|
||
'providerrid': jscs_id,
|
||
'customerid': ns_jncs_bill.get('loginid'),
|
||
'productname': ns_jncs_bill.get('queuename'),
|
||
'del_flg': '0'
|
||
}
|
||
goods_li = await sor.R('customer_goods', ns_goods)
|
||
resourceid = goods_li[0].get('id')
|
||
ns_resouce_using = {
|
||
'id': uuid(),
|
||
'resourceid': resourceid,
|
||
'use_date': current_date,
|
||
'total_quantity': ns_jncs_bill.get('totalctime') or '',
|
||
'used_quantity': ns_jncs_bill.get('usedctime') or '',
|
||
'rest_quantity': ns_jncs_bill.get('remainctime') or '',
|
||
}
|
||
ns_customer_goods = {
|
||
'id': resourceid,
|
||
'total_quantity': ns_jncs_bill.get('totalctime') or '',
|
||
'used_quantity': ns_jncs_bill.get('usedctime') or '',
|
||
'rest_quantity': ns_jncs_bill.get('remainctime') or '',
|
||
}
|
||
await sor.C('jncs_bill', ns_jncs_bill)
|
||
await sor.C('resource_using', ns_resouce_using)
|
||
await sor.U('customer_goods', ns_customer_goods)
|
||
return {
|
||
'status': True,
|
||
'msg': 'sync jncs bill success'
|
||
}
|
||
except Exception as e:
|
||
raise e
|
||
return {
|
||
'status': False,
|
||
'msg': 'jncs get bill failed'
|
||
}
|
||
|
||
|
||
|
||
ret = await SyncUsers(params_kw)
|
||
return ret |