def wbConfigSets(self): cherrypy.response.headerMap["Content-Type"] = "application/xml" cherrypy.response.headerMap["Cache-Control"] = "no-cache" configsets = map( wrap("<ConfigSet>", "</ConfigSet>"), ConfigSet.listNames() ) return ( """<?xml version="1.0" encoding="utf-8" ?> <ConfigSets> """+ "\n".join(configsets)+ """ </ConfigSets> """ )
def wbConfigAction(self): """ Process return from main configuration form """ # Process submission req = cherrypy.request action = req.paramMap["action"] if isinstance( action, list ): # Internet explorer action = req.paramMap["buttonAction"] #action = self.getAction( req.paramMap ) Trace("%s"%(req.paramMap), "wbConfigAction") # Save selections for session consistency cherrypy.session.acquire_lock() cherrypy.session["Network"] = req.paramMap["WbIpNetworks"] cherrypy.session["ConfigSet"] = req.paramMap["WbConfigSets"] cherrypy.session["Password"] = req.paramMap["WbPassword"] cherrypy.session.release_lock() # Force discovery of WebBricks on selected network if action == "WbDiscover": net = req.paramMap["WbIpNetworks"] self.WebBrickDiscover(net) return self.ConfigFrontPage() # Update IP address of WebBrick if action == "WbIpUpdate": Password = req.paramMap["WbPassword"] or "password" NewIpAdrs = req.paramMap["WbNewIpAdrs"] IpAddress = req.paramMap["WbIpAddress"] MacAddress = req.paramMap["WbMacAddress"] NetAddress = req.paramMap["WbIpNetworks"] if NewIpAdrs == IpAddress: return self.wbConfigMessage( "WebBrick IP address not changed (%s)"%(IpAddress)) err = self.WebBrickUpdateIp(IpAddress, MacAddress, NetAddress, Password, NewIpAdrs) self.WebBrickFlushDiscovered() return err or self.wbConfigMessage( "Sent new IP address "+NewIpAdrs+ " to WebBrick "+MacAddress+" at "+IpAddress, "(If the WebBrick IP address does not appear to be updated, "+ "check that the correct WebBrick password is being used)") # Remove WebBrick from list of WebBricks if action == "WbRemoveWebBrick": wbn = req.paramMap.get("WbSelector","") err = self.WebBrickRemove(wbn) if err: return self.wbConfigError(err) return self.ConfigFrontPage() # Add WebBrick IP address to the list of WebBricks if action == "WbAddIpAddress": wbip = req.paramMap.get("WbNewIpAdrs","") err = self.WebBrickAdd(wbip) return err or self.ConfigFrontPage() # Load/Save WebBrick configurations if action == "WbLoadConfig": if not req.paramMap.has_key("WbSelector"): return self.wbConfigError("No WebBrick selected for load") nodenum = req.paramMap["WbSelector"] nodemac = req.paramMap["WbMacAddress"] nodeip = req.paramMap["WbIpAddress"] password = req.paramMap["WbPassword"] configset = req.paramMap["WbConfigSets"] confignum = req.paramMap["WbConfigNode"] err = self.WebBrickLoad( nodenum, nodeip, nodemac, password, configset, confignum ) return err or self.wbConfigMessage( "Loaded WebBrick configuration for node "+str(confignum), "If the WebBrick configuration does not appear to be updated, "+ "check that the correct WebBrick password is being used") if action == "WbSaveConfig": if not req.paramMap.has_key("WbSelector"): return self.wbConfigError("No WebBrick selected for save") nodenum = req.paramMap["WbSelector"] nodeip = req.paramMap["WbIpAddress"] configset = req.paramMap["WbConfigSets"] err = self.WebBrickSave( nodenum, nodeip, configset, False ) return err or self.wbConfigMessage( "Saved WebBrick configuration for node "+str(nodenum)) if action == "WbSaveAllConfigs": def mkpair(s): return s.split(',',2) def ispair(p): return len(p) == 2 nodeliststr = req.paramMap["WbNodeList"] nodelist = filter(ispair, map(mkpair, nodeliststr.split(';'))) configset = req.paramMap["WbConfigSets"] numnodes = 0 for (nodenum,nodeip) in nodelist: err = self.WebBrickSave( nodenum, nodeip, configset, False ) if err: return err numnodes += 1 if numnodes == 0: msg = "No WebBrick configurations saved" else: msg = "Saved configuration for "+str(numnodes)+" WebBrick" if numnodes > 1: msg += "s" return self.wbConfigMessage(msg) # Create/delete configuration set if action == "WbNewCs": return self.NewConfigSetForm("") if action == "WbDeleteCs": configset = req.paramMap["WbConfigSets"] if not ConfigSet.exists(configset): return self.wbConfigError( "Configuration set does not exist: "+configset) return self.DeleteConfigSetForm(configset) if action == "WbDeleteConfig": configset = req.paramMap["WbConfigSets"] confignode = req.paramMap["WbConfigNode"] configname = req.paramMap["WbConfigName"] if not Config.exists(configset, confignode): return self.wbConfigError( "Configuration set %s/%s does not exist"%(configset,confignode)) return self.DeleteConfigForm(configset, confignode, configname) # Configuration manipulation (New, Show, Edit, Delete) if action == "WbShowConfig": configset = req.paramMap["WbConfigSets"] confignode = req.paramMap["WbConfigNode"] configname = req.paramMap["WbConfigName"] return self.ShowConfigForm(configset, confignode, configname) #################### more ############################ # Configuration transfer options (Copy, Move, Upload, Download) if action == "WbCopyConfig": configsets = ConfigSet.listNames() configset = req.paramMap["WbConfigSets"] confignode = req.paramMap["WbConfigNode"] configname = req.paramMap["WbConfigName"] return self.CopyConfigForm(configset, confignode, configname, configsets) if action == "WbMoveConfig": configsets = ConfigSet.listNames() if req.paramMap["WbConfigNode"] == "(None)": return self.wbConfigError("Move: a source node must be selected") configset = req.paramMap["WbConfigSets"] confignode = req.paramMap["WbConfigNode"] configname = req.paramMap["WbConfigName"] return self.MoveConfigForm(configset, confignode, configname, configsets) if action == "WbUploadConfig": configset = req.paramMap["WbConfigSets"] return self.UploadConfigForm(configset) if action == "WbDownloadConfig": configset = req.paramMap["WbConfigSets"] confignode = req.paramMap["WbConfigNode"] return self.DownloadConfig(configset, confignode) # Default for now: dump form parameters paramlist = "" for k in req.paramMap.keys(): paramlist += str(k)+": "+str(req.paramMap[k])+"\n" return ("<h1>Unrecognized option</h1>\n"+ "<pre>"+paramlist+"</pre>"+ """ <p> <a href='"""+self.FrontPage+"""'>Return to main configuration manager page</a> </p> """)