def delsnap(agentid, id): packstruct = PackOper(int(agentid)) packstruct.send_DBS_OPER_SNAP(167, int(id)) (status, id) = packstruct.recv_DBS_OPER_SNAP() log = Logger() if (status ==0): log.logout('INFO', "Snapshot has been DELETED - ID is "+id) else: log.logout('ERROR', "Snapshot deleted Failed") return redirect('/snaplist/'+str(agentid))
def addSequence(): seqlist = readdbs.getSeqlist() if request.method == 'POST': form = request.form mac = form.get('mac') ip = form.get('ip') serial = form.get('serial') seqinfo = dict(mac=mac, agentid=str(string.atoi(seqlist[-1]['agentid'])+1), ip=ip, serial=serial) (flag, seqlist) = readdbs.addSequence(seqinfo) log = Logger() log.logout('INFO', "Add Sequence Successed - "+ip) return render_template('Sequence.html', title=u"客户端管理", sequenceinfo=seqlist, flag=flag)
def changeMac(): log = Logger() if request.method == "POST": form = request.form ip = form.get('ip') newmac = form.get('newmac') (flag, seqlist) = readdbs.changemac(ip, newmac) log.logout('INFO', "["+ip+"] 's MAC Address changed Successful") else: seqlist = readdbs.getSeqlist() flag = -1 log.logout('ERROR', "Mac Address changed FAILED") return render_template('MacAdr.html', title=u"修改MAC地址", seqlist=seqlist, flag=flag)
def readfile(): log = Logger() try: for line in open(cdp_config.pwdpath): line = line.strip("\n") pwdlist = line.split("|") if pwdlist[2] == "0": UserList["admin"] = pwdlist[1] elif pwdlist[2] == "1": UserList["security"] = pwdlist[1] elif pwdlist[2] == "2": UserList["auditor"] = pwdlist[1] except IOError: log.logout("WARN", "Login - No Password File[admin.ini]")
def change(user, pwd): f = open("admin.ini", "w") m = hashlib.md5() m.update(pwd) pwd = m.hexdigest() UserList[user] = pwd authority = 0 log = Logger() log.logout("INFO", "Password changed") for (user, p) in UserList.items(): temp = user + "|" + p + "|" + str(authority) + "\n" authority += 1 f.write(temp) f.close()
def verify(user, pwd): log = Logger() readfile() m = hashlib.md5() m.update(pwd) pwd = m.hexdigest() if user not in UserList: log.logout("INFO", "Login - No this User[" + user + "]") return -1 # No this User if UserList.get(user) == pwd: return 0 # Login Success else: log.logout("INFO", "Login - Wrong Password") return -2 # Wrong pwd
def createBS(index): packstruct = PackOper(0) log = Logger() packstruct.send_DBS_MESSAGE_HEADER(5) (number, disks) = packstruct.recv_DBS_PHYDEV_LIST_ACK() path = disks[index]['id'] packstruct.send_DBS_BACKUP_CREATE(path) flag = 1 if packstruct.recv_DBS_BACKUP_CREATE()==17: log.logout('ERROR', 'Create BackSpace Failed - This Backspace Already EXISTS - '+path) flag = -1 if flag==1: log.logout('INFO', 'Create BackSpace Successed - '+path) return render_template('createbackspace.html', title=u"创建备份空间", diskInfo=disks, flag=flag)
def changeIP(): new = {} if request.method == "POST": form = request.form new['ip'] = form.get('ip') new['mask'] = form.get('mask') new['gateway'] = form.get('gateway') flag = networkconfig.changeNetworkInfo(new) log = Logger() if flag==1: log.logout('INFO', "IP Address changed successful") else: log.logout('ERROR', "IP Address changed FAILED") return render_template('ViewNetWork.html', title=u"IP设置", network=new, flag=flag)
def changerange(): flag = 0 (start, end) = dhcpmgr.getDhcpRange() log = Logger() if request.method == 'POST': form = request.form newstart = form.get('start') newend = form.get('end') if start != newstart or end != newend: dhcpmgr.changedhcprange(newstart, newend) flag = 1 start = newstart end = newend log.logout('INFO', "DHCP Range Changed Success") return render_template('dhcpmanager.html', title=u"DHCP管理", status=1, start=start, end=end, flag=flag)
def createsnap(agentid): seqlist = readdbs.getSeqlist() packstruct = PackOper(int(agentid)) packstruct.send_DBS_SNAPLIST_REQ(0) snap = packstruct.recv_DBS_SNAPLIST_ACK() flag = -1 log = Logger() if request.method == 'POST': form = request.form info = form.get('info') if len(info) < 32: packstruct = PackOper(int(agentid)) packstruct.send_DBS_CREATE_SNAP(0, str(info)) id = packstruct.recv_DBS_CREATE_SNAP() flag = 1 log.logout('INFO', "Create Snapshot Success - ID is "+str(id)) else: log.logout("ERROR", "Create Snap Failed - Snapshot Description too LONG") return render_template('snaplist.html', title=u"快照管理", seqlist=seqlist, snaplist=snap, flag=flag, agentid=agentid)
def login(): if request.method == "POST": form = request.form usr = form.get('username') pwd = form.get('password') log = Logger() if password.verify(usr, pwd) == 0: session[usr] = usr if usr == 'admin': log.logout('INFO', 'Admin Login') return redirect(url_for('index')) elif usr == 'security': log.logout('INFO', 'Security Login') return redirect(url_for('securityindex')) elif usr == 'auditor': log.logout('INFO', 'Security Login') return redirect(url_for('auditorindex')) return render_template('login.html')
def dhcpstart(): status = dhcpmgr.changeDhcp('start') (start, end) = dhcpmgr.getDhcpRange() log = Logger() log.logout('INFO', "DHCP has Started") return render_template('dhcpmanager.html', title=u"DHCP管理", status=status, start=start, end=end)
def delSequence(agentid): (flag, seqlist) = readdbs.delSequence(agentid) log = Logger() log.logout('INFO', "DELETE Sequence Successed") return render_template('Sequence.html', title=u"客户端管理", sequenceinfo=seqlist, flag=flag)