服务系统 server端
Posted 冰滴的眼泪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务系统 server端相关的知识,希望对你有一定的参考价值。
from django.shortcuts import render,HttpResponse import json # Create your views here. from repository import models from aip.plugins import Plugins def server(request): server_dict=json.loads(request.body.decode(\'utf-8\')) if not server_dict[\'basic\'][\'status\']: return HttpResponse(\'iiiiiiiii\') # hostname=server_dict[\'basic\'][\'data\'][\'hostname\'] # server_obj=models.Server.objects.filter(hostname=hostname).first() cls=Plugins() response=cls.process(server_dict) print(response) print(type(response)) return HttpResponse(json.dumps(response))
from django.shortcuts import render,HttpResponse from django.conf import settings from repository import models import importlib from .basic import Basic class Plugins(object): def __init__(self): self.settings=settings.PLUGIN_ITEMS self.basic_key=\'basic\' self.board_key=\'board\' print(self.basic_key) def process(self,server_dict): hostname = server_dict[\'basic\'][\'data\'][\'hostname\'] server_obj = models.Server.objects.filter(hostname=hostname).first() ret={\'code\':1,\'msg\':None} if not server_obj: ret[\'code\']=4 return ret #直接传入参数 obj = Basic(server_obj, server_dict[self.basic_key], server_dict[self.board_key]) obj.exec() # return HttpResponse(\'请求错误\') # else: #使用内存。网卡等走的流程 for i,v in self.settings.items(): try: class_obj,class_name=v.rsplit(\'.\',maxsplit=1) module=importlib.import_module(class_obj) ret=getattr(module,class_name) print(ret,\'=======\') obj=ret(server_obj,server_dict[i]) print(obj,\'//[[[[[[\') obj.exec() print(\'////\',obj.exec()) except Exception as e: ret[\'code\']=4 return ret
from django.shortcuts import render,HttpResponse from django.conf import settings from repository import models import importlib from .basic import Basic class Plugins(object): def __init__(self): self.settings=settings.PLUGIN_ITEMS self.basic_key=\'basic\' self.board_key=\'board\' print(self.basic_key) def process(self,server_dict): ret = {\'code\': 1, \'msg\': None} hostname = server_dict[\'basic\'][\'data\'][\'hostname\'] server_obj = models.Server.objects.filter(hostname=hostname).first() print(\'=====================\',server_obj) if not server_obj: ret[\'code\']=4 return ret #直接传入参数 obj = Basic(server_obj, server_dict[self.basic_key], server_dict[self.board_key]) obj.exec() # return HttpResponse(\'请求错误\') # else: #使用内存。网卡等走的流程 for i,v in self.settings.items(): try: class_obj,class_name=v.rsplit(\'.\',maxsplit=1) module=importlib.import_module(class_obj) print(module) rets=getattr(module,class_name) print(rets) obj=rets(server_obj,server_dict[i]) obj.exec() print(obj.exec()) except Exception as e: ret[\'code\']=4 return ret
from repository import models class Basic(object): def __init__(self,server_obj,basic_key,board_key): self.server_obj=server_obj self.basic_key=basic_key self.boaed_key=board_key def exec(self): temp = {} # 获取新的主机详细信息 basic_obj = self.basic_key[\'data\'] board_obj = self.boaed_key[\'data\'] temp.update(basic_obj) temp.update(board_obj) # 数据库更改主机的详细信息 server_obj = models.Server.objects.filter(hostname=self.server_obj.hostname).first() temps = [] for i, new_values in temp.items(): old_values = getattr(server_obj, i) if new_values != old_values: conent = "[%s]的[%s]由[%s]更改为[%s]" % (self.server_obj.hostname, i, old_values, new_values) temps.append(conent) setattr(server_obj, i, new_values) server_obj.save() if temps: models.ServerRecord.objects.create(server_obj=server_obj, content=\';\'.join(temps),
from repository import models class Disk(object): def __init__(self,server_obj,server_dict): self.server_obj=server_obj self.server_dict=server_dict self.temps=[] def exec(self): # 配置disk详细信息 disk_obj = self.server_dict[\'data\'] new_disk_keys = set(disk_obj.keys()) disk_list = models.Disk.objects.all() old_disk_keys = {item.slot for item in disk_list} # print(old_disk_keys) app_disk = new_disk_keys - old_disk_keys del_disk = old_disk_keys - new_disk_keys same_disk = new_disk_keys & old_disk_keys if app_disk: self.add_disk_exec(app_disk, disk_obj) if del_disk: self.del_disk_exec(del_disk,disk_obj) if same_disk: self.same_disk_exec(same_disk, disk_obj) if self.temps: models.ServerRecord.objects.create(server_obj=self.server_obj, content=\';\'.join(self.temps),) # 增加硬盘信息 def add_disk_exec(self,app_disk,disk_obj): for i in app_disk: obj = disk_obj[i] obj[\'server_obj\'] = self.server_obj models.Disk.objects.create(**obj) conent = "Disk增加信息[%s]" % obj self.temps.append(conent) # print(temps) # if temps: # models.ServerRecord.objects.create(server_obj=self.server_obj, content=\';\'.join(temps), # creator_id=request.user) # 删除硬盘信息 def del_disk_exec(self,del_disk,disk_obj): for i in del_disk: conent = "Disk删除硬盘信息[%s]" % (disk_obj[i]) models.Disk.objects.filter(slot__in=i).delete() self.temps.append(conent) print(conent) # if temps: # models.ServerRecord.objects.create(server_obj=server_obj, content=\';\'.join(temps), # creator_id=request.user) # 共同相同:same_disk def same_disk_exec(self,same_disk,disk_obj): for i in same_disk: new_values = disk_obj[i] disk_f = models.Disk.objects.filter(slot=i).first() for i, new_values_new in new_values.items(): old_values = getattr(disk_f, i) if new_values_new != old_values: setattr(disk_f, i, new_values_new) conent = "[%s]的[%s]由[%s]更改为[%s]" % (i, i, old_values, new_values_new) self.temps.append(conent) disk_f.save()
from repository import models class Memory(object): def __init__(self,server_obj,server_dict): self.server_obj=server_obj self.server_dict=server_dict self.temps=[] def exec(self): # 更新memory信息 memory_obj = self.server_dict[\'data\'] new_memory_keys = set(memory_obj.keys()) memory_list = models.Memory.objects.all() old_memory_keys = {item.slot for item in memory_list} # print(old_disk_keys) app_memory = new_memory_keys - old_memory_keys del_memory = old_memory_keys - new_memory_keys same_memory = new_memory_keys & old_memory_keys # 增加硬盘信息 if app_memory: self.add_memory_key( memory_obj, app_memory) if del_memory: self.del_memory_key(del_memory, memory_obj) if same_memory: self.same_memory_key(same_memory, memory_obj) if self.temps: models.ServerRecord.objects.create(server_obj=self.server_obj, content=\';\'.join(self.temps)) def add_memory_key(self,memory_obj,app_memory): for i in app_memory: obj = memory_obj[i] obj[\'server_obj\'] = self.server_obj models.Memory.objects.create(**obj) conent = "memory增加信息[%s]" % obj self.temps.append(conent) # print(temps) # if temps: # models.ServerRecord.objects.create(server_obj=server_obj, content=\';\'.join(temps), # ) # 删除硬盘信息 def del_memory_key(self,del_memory,memory_obj): for i in del_memory: conent = "Disk删除硬盘信息[%s]" % (memory_obj[i]) models.Memory.objects.filter(slot__in=i).delete() self.temps.append(conent) # print(conent) # if temps: # models.ServerRecord.objects.create(server_obj=server_obj, content=\';\'.join(temps), # ) # 共同相同:same_disk def same_memory_key(self,same_memory,memory_obj): for i in same_memory: new_values = memory_obj[i] memory_f = models.Memory.objects.filter(slot=i).first() for i, new_values_new in new_values.items(): old_values = getattr(memory_f, i) if new_values_new != old_values: setattr(memory_f, i, new_values_new) conent = "[%s]的[%s]由[%s]更改为[%s]" % (i, i, old_values, new_values_new) self.temps.append(conent) memory_f.save() # if temp:
from repository import models class NIC(object): def __init__(self,server_obj,server_dict): self.server_obj=server_obj self.nic_dict=server_dict self.temps=[] def exec(self): # 配置nic信息 nic_obj =self.nic_dict[\'data\'] nic_list = self.server_obj.nic.values(\'name\') new_nic_obj = set(self.nic_dict[\'data\'].keys()) old_nic_obj = {nic[\'name\'] for nic in nic_list} # print(new_nic_obj) # print(old_nic_obj) app_nic = new_nic_obj - old_nic_obj del_nic = old_nic_obj - new_nic_obj same_nic = new_nic_obj & old_nic_obj if app_nic: self.add_nic(app_nic,nic_obj) if del_nic: self.del_nic(del_nic) if same_nic: self.same_nic_key(same_nic,nic_obj) if self.temps: models.ServerRecord.objects.create(server_obj=self.server_obj, content=\';\'.join(self.temps)) # 增加nic信息 def add_nic(self,app_nic,nic_obj): for item in app_nic: values = nic_obj[item] values[\'server_obj\'] = self.server_obj models.NIC.objects.create(**values) conent = "nic增加信息[%s]" % item self.temps.append(conent) # print(temps) # if temps: # models.ServerRecord.objects.create(server_obj=server_obj, content=\';\'.join(temps)) # 删除硬盘信息 def del_nic(self,del_nic): for item in del_nic: conent = "nic删除信息[%s]" % item models.NIC.objects.filter(server_obj=self.server_obj, name__in=item).delete() self.temps.append(conent) # if temps: # models.ServerRecord.objects.create(server_obj=server_obj, content=\';\'.join(temps)) def same_nic_key(self,same_nic,nic_obj): for name in same_nic: value = nic_obj[name] obj = models.NIC.objects.filter(server_obj=self.server_obj, name=name).first() for k, new_val in value.items(): old_val = getattr(obj, k) if old_val != new_val: conent = "名称%s的网卡的%s由%s变更为%s" % (name, k, old_val, new_val) self.temps.append(conent) setattr(obj, k, new_val) obj.save() # if temps:
以上是关于服务系统 server端的主要内容,如果未能解决你的问题,请参考以下文章
在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途
NodeJS中的Websockets。从服务器端WebSocket客户端调用WebSocketServer
SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端Eureka 服务信息Eureka 发现管理Eureka 安全配置Eureka-HA(高可用) 机制Eur(代码片段
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段