91 lines
2.4 KiB
Python
91 lines
2.4 KiB
Python
from . import sshClient
|
|
import json
|
|
'''
|
|
创建队列
|
|
'''
|
|
def create_partition(dict):
|
|
command = "sudo scontrol create "
|
|
for key, value in dict.items():
|
|
command=command+key+"="+str(value)+" "
|
|
|
|
print(command)
|
|
return sshClient.exec_command(command)
|
|
'''
|
|
更新队列
|
|
'''
|
|
def update_partition(dict):
|
|
command = "sudo scontrol update "
|
|
for key, value in dict.items():
|
|
command=command+key+"="+str(value)+" "
|
|
|
|
return sshClient.exec_command(command)
|
|
|
|
'''
|
|
删除队列
|
|
'''
|
|
def delete_partition(dict):
|
|
command = "sudo scontrol delete "
|
|
for key, value in dict.items():
|
|
command = command + key + "=" + str(value) + " "
|
|
|
|
return sshClient.exec_command(command)
|
|
'''
|
|
查询队列详情
|
|
'''
|
|
def list_partition_detail(PartitionName):
|
|
command = "sudo scontrol show part "
|
|
if PartitionName is not None:
|
|
command = command + PartitionName + " "
|
|
|
|
return sshClient.exec_command(command)
|
|
|
|
'''
|
|
查询队列信息简略
|
|
'''
|
|
def list_partition_info(query):
|
|
command = "sudo sinfo "
|
|
|
|
return sshClient.exec_command(command)
|
|
|
|
'''
|
|
查询队列信息简略 带json
|
|
'''
|
|
def list_partition_detail_json(query):
|
|
command = "scontrol show part "
|
|
|
|
if query["partitionName"] is not None:
|
|
command=command+ " "+query["partitionName"]
|
|
result=sshClient.exec_command(command)
|
|
|
|
data_str = result["stdout"]
|
|
# 按空行分割字符串,得到每个节点的数据
|
|
partition_data = data_str.strip().split('\n\n')
|
|
|
|
# 初始化一个列表来存储所有节点的字典
|
|
partition_list = []
|
|
|
|
# 遍历每个节点的数据
|
|
for partition_data in partition_data:
|
|
# 初始化一个字典来存储当前节点的键值对
|
|
partition_dict = {}
|
|
# 按行分割当前节点的数据
|
|
lines = partition_data.strip().split('\n')
|
|
for line in lines:
|
|
# 按空格分割键值对
|
|
key_value_pairs = line.strip().split()
|
|
|
|
for pair in key_value_pairs:
|
|
pair_list= pair.split('=')
|
|
if len(pair_list)<2:
|
|
key=pair_list[0]
|
|
value=""
|
|
else:
|
|
key=pair_list[0]
|
|
value=pair_list[1]
|
|
# 将键和值添加到字典中
|
|
partition_dict[key] = value
|
|
# 将当前节点的字典添加到列表中
|
|
partition_list.append(partition_dict)
|
|
|
|
return partition_list
|