def __init__( self ): cmd.Cmd.__init__( self ) self.connected = False self.masterURL = "unset" self.writeEnabled = False self.modifiedData = False self.rpcClient = None self.do_connect() if self.connected: self.modificator = Modificator ( self.rpcClient ) else: self.modificator = Modificator() self.identSpace = 20 self.backupFilename = "dataChanges" self._initSignals() #User friendly hack self.do_exit = self.do_quit # store history histfilename = os.path.basename(sys.argv[0]) historyFile = os.path.expanduser( "~/.dirac/%s.history" % histfilename[0:-3]) if not os.path.exists( os.path.dirname(historyFile) ): os.makedirs( os.path.dirname(historyFile) ) if os.path.isfile( historyFile ): readline.read_history_file( historyFile ) readline.set_history_length(1000) atexit.register( readline.write_history_file, historyFile )
def initialize(self): if self.__initialized['OK']: return self.__initialized if not gConfig.useServerCertificate(): res = self.__getProxyID() else: res = self.__getCertificateID() if not res: self.__initialized = S_ERROR("Cannot locate client credentials") return self.__initialized retVal = gConfig.getOption("/DIRAC/Configuration/MasterServer") if not retVal['OK']: self.__initialized = S_ERROR( "Master server is not known. Is everything initialized?") return self.__initialized self.__rpcClient = RPCClient( gConfig.getValue("/DIRAC/Configuration/MasterServer", "")) self.__csMod = Modificator( self.__rpcClient, "%s - %s - %s" % (self.__userGroup, self.__userDN, Time.dateTime().strftime("%Y-%m-%d %H:%M:%S"))) retVal = self.downloadCSData() if not retVal['OK']: self.__initialized = S_ERROR( "Can not download the remote cfg. Is everything initialized?") return self.__initialized self.__initialized = S_OK() return self.__initialized
def __getRemoteConfiguration(self, funcName): rpcClient = RPCClient( gConfig.getValue("/DIRAC/Configuration/MasterServer", "Configuration/Server")) modCfg = Modificator(rpcClient) retVal = modCfg.loadFromRemote() if not retVal['OK']: return { "success": 0, "op": "getSubnodes", "message": "The configuration cannot be read from the remote !" } self.__configData['cfgData'] = modCfg self.__configData['strCfgData'] = str(modCfg) version = str(modCfg.getCFG()["DIRAC"]["Configuration"]["Version"]) configName = str(modCfg.getCFG()["DIRAC"]["Configuration"]["Name"]) return { "success": 1, "op": funcName, "version": version, "name": configName }
def do_connect(self, line): """connect Connect to the CS Usage: connect <URL> (Connect to the CS at the specified URL) connect (Connect to the default CS URL of your config) """ if line == "": self.serverURL = gConfigurationData.getMasterServer() self.serverName = gConfigurationData.getName() else: self.serverURL = self.serverName = line if self.serverURL == None: print "Unable to connect to the default server. Maybe you don't have a proxy ?" return self.do_disconnect("") print "Trying to connect to " + self.serverURL + "...", self.modificator = Modificator(RPCClient(self.serverURL)) rv = self.modificator.loadFromRemote() rv2 = self.modificator.loadCredentials() if rv['OK'] == False or rv2['OK'] == False: print "failed: ", if rv['OK'] == False: print rv['Message'] else: print rv2['Message'] self.connected = False self.update_prompt()
def initialize(self): """API initialization :return: S_OK()/S_ERROR() """ if self.__initialized["OK"]: return self.__initialized res = self.__getCertificateID() if gConfig.useServerCertificate( ) else self.__getProxyID() if not res["OK"]: gLogger.error(res["Message"]) self.__initialized = S_ERROR("Cannot locate client credentials") return self.__initialized retVal = gConfig.getOption("/DIRAC/Configuration/MasterServer") if not retVal["OK"]: self.__initialized = S_ERROR( "Master server is not known. Is everything initialized?") return self.__initialized self.__rpcClient = ConfigurationClient( url=gConfig.getValue("/DIRAC/Configuration/MasterServer", "")) self.__csMod = Modificator( self.__rpcClient, "%s - %s - %s" % (self.__userGroup, self.__userDN, datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")), ) retVal = self.downloadCSData() if not retVal["OK"]: self.__initialized = S_ERROR( "Can not download the remote cfg. Is everything initialized?") return self.__initialized self.__initialized = S_OK() return self.__initialized
def do_connect(self, line): """connect Connect to the CS Usage: connect <URL> (Connect to the CS at the specified URL) connect (Connect to the default CS URL of your config) """ if line == "": self.serverURL = gConfigurationData.getMasterServer() self.serverName = gConfigurationData.getName() else: self.serverURL = self.serverName = line if self.serverURL is None: print("Unable to connect to the default server. Maybe you don't have a proxy ?") return self.do_disconnect("") print("Trying to connect to " + self.serverURL + "...", end=" ") self.modificator = Modificator(ConfigurationClient(url=self.serverURL)) rv = self.modificator.loadFromRemote() rv2 = self.modificator.loadCredentials() if rv["OK"] == False or rv2["OK"] == False: print("failed: ", end=" ") if rv["OK"] is False: print(rv["Message"]) else: print(rv2["Message"]) self.connected = False self.update_prompt() else: self.connected = True self.update_prompt() print("done.")
def __init__(self): cmd.Cmd.__init__(self) self.connected = False self.masterURL = "unset" self.writeEnabled = False self.modifiedData = False self.rpcClient = None self.do_connect() if self.connected: self.modificator = Modificator(self.rpcClient) else: self.modificator = Modificator() self.identSpace = 20 self.backupFilename = "dataChanges" self._initSignals() #User friendly hack self.do_exit = self.do_quit
def __getModificator(self): rpcClient = getRPCClient( gConfig.getValue("/DIRAC/Configuration/MasterServer", "Configuration/Server")) commiter = "%s@%s - %s" % ( credentials.getUsername(), credentials.getSelectedGroup(), Time.dateTime().strftime("%Y-%m-%d %H:%M:%S")) return Modificator(rpcClient, commiter)
def __init__(self): CLI.__init__(self) self.connected = False self.masterURL = "unset" self.writeEnabled = False self.modifiedData = False self.rpcClient = None self.do_connect() if self.connected: self.modificator = Modificator(self.rpcClient) else: self.modificator = Modificator() self.indentSpace = 20 self.backupFilename = "dataChanges" # store history histfilename = os.path.basename(sys.argv[0]) historyFile = os.path.expanduser("~/.dirac/%s.history" % histfilename[0:-3]) mkDir(os.path.dirname(historyFile)) if os.path.isfile(historyFile): readline.read_history_file(historyFile) readline.set_history_length(1000) atexit.register(readline.write_history_file, historyFile)
def __getRemoteConfiguration(self): rpcClient = getRPCClient( gConfig.getValue("/DIRAC/Configuration/MasterServer", "Configuration/Server")) modCfg = Modificator(rpcClient) retVal = modCfg.loadFromRemote() if retVal['OK']: session['cfgData'] = str(modCfg) session['csName'] = "%s Configuration" % ( modCfg.getValue("/DIRAC/VirtualOrganization")) session.save() c.cfgData = modCfg.cfgData c.csName = session['csName'] return retVal
def initialize(self): if not gConfig.useServerCertificate(): res = self.__getProxyID() else: res = self.__getCertificateID() if not res: return False retVal = gConfig.getOption("/DIRAC/Configuration/MasterServer") if not retVal['OK']: gLogger.warn( "Master server is not known. Is everything initialized?") return False self.__rpcClient = RPCClient( gConfig.getValue("/DIRAC/Configuration/MasterServer", "")) self.__csMod = Modificator( self.__rpcClient, "%s - %s" % (self.__userGroup, self.__userDN)) retVal = self.downloadCSData() if not retVal['OK']: gLogger.error( "Can not download the remote cfg. Is everything initialized?") return False return True
diffList=processedData["diff"]) })) def __showDiff(self, params): if not self.__authorizeAction(): raise WErr(500, "You are not authorized to get diff's!! Bad boy!") try: fromDate = str(params['fromVersion']) toDate = str(params['toVersion']) except Exception, e: raise WErr(500, "Can't decode params: %s" % e) rpcClient = RPCClient( gConfig.getValue("/DIRAC/Configuration/MasterServer", "Configuration/Server")) modCfg = Modificator(rpcClient) diffGen = modCfg.getVersionDiff(fromDate, toDate) processedData = self.__generateHTMLDiff(diffGen) return self.write_message( json.dumps({ "success": 1, "op": "showDiff", "lines": processedData["lines"], "totalLines": processedData["totalLines"], "html": self.render_string("ConfigurationManager/diffConfig.tpl", titles=("From version %s" % fromDate,