def sendCommand(self, jbossHome, controller, user, password, cluster, sbgroup, domain, profile): self.fillParameters(jbossHome, controller, user, password) startCommand = self._clisg+cluster+":add(profile="+profile+",socket-binding-group="+sbgroup+")" print("eseguo: "+self._complPath+" "+self._cliconn+" "+self._complContr+" "+self._complUser+" "+self._complPwd+" "+startCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd, startCommand]) pm = PropertyManager("Domains/"+domain+".properties") old_clusters = pm.getValue("clusters") if(old_clusters == None): new_clusters = cluster else: new_clusters = ValueUtils.addToValues(cluster, old_clusters, ',') pm.updateValue("Domains/"+domain+".properties", "clusters", new_clusters)
def sendCommand(self, jbossHome, controller, user, password, domain, cluster, host, instance, offset): self.fillParameters(jbossHome, controller, user, password) startCommand = "/host="+host+"/server-config="+instance+":add(group="+cluster+",socket-binding-port-offset="+offset+",auto-start=false)" print("eseguo: "+self._complPath+" "+self._cliconn+" "+self._complContr+" "+self._complUser+" "+self._complPwd+" "+startCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,startCommand]) pm = PropertyManager("Domains/"+domain+".properties") oldInstances = pm.getValue("cluster."+cluster+".instances") if(oldInstances == None): newInstances = instance else: newInstances = ValueUtils.addToValues(instance, oldInstances, ',') pm.updateValue("Domains/"+domain+".properties", "cluster."+cluster+".instances", newInstances) oldHostInstances = pm.getValue("cluster."+cluster+"."+host+".instances") if(oldHostInstances == None): newHostInstances = instance else: newHostInstances = ValueUtils.addToValues(instance, oldHostInstances, ',') pm.updateValue("Domains/"+domain+".properties", "cluster."+cluster+"."+host+".instances", newHostInstances)
def execute(self, jbossHome, controller, user, password): self.fillParameters(jbossHome, controller, user, password) print chr(27) + "[2J" console.flush() print("hai chiamato deploy drain mode") try: domain = FindUtils.getDomain("domains") print("server group passive...") clusterA = FindUtils.getCluster(domain) print("server group active...") clusterB = FindUtils.getCluster(domain) pathTuple = FindUtils.findPath() runtimeNameList = pathTuple[0].split('/') runtimeNameSingle = runtimeNameList[len(runtimeNameList)-1] runtimeName = self._clirname+runtimeNameSingle deployCommand = 'deploy' sgCompl=self._clisgs+clusterB nameCompl=self._cliname+pathTuple[1] pm = PropertyManager("Domains/"+domain+".properties") hostNumb = pm.getValue("host.number") hostPrefix = pm.getValue("host.prefix") hostSuffix = pm.getValue("host.suffix") appKey="application."+domain+"."+clusterB+".name" #appName = pm.getValue(appKey) appName=pathTuple[1] #UNDEPLOY FROM PASSIVE CLUSTER #list deployments in group listDeploymentsPassiveCommand='ls'+" "+ self._clisg + clusterA+'/deployment' print("eseguo: "+self._complPath+" "+self._cliconn+" "+self._complContr+" "+self._complUser+" "+self._complPwd+" "+listDeploymentsPassiveCommand) output = subprocess.Popen([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,listDeploymentsPassiveCommand], stdout=subprocess.PIPE ).communicate()[0] deploymentList = ValueUtils.parseDeploymentList(output) if(appName in deploymentList): undeployCommand=self._clisg+clusterA+self._clidpmt+appName+":undeploy()" print(undeployCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,undeployCommand]) removeSgCommand=self._clisg+clusterA+self._clidpmt+appName+":remove()" print(undeployCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,removeSgCommand]) #list deployments in domain listDeploymentsCommandDomain='ls'+" "+ '/deployment' print("eseguo: "+self._complPath+" "+self._cliconn+" "+self._complContr+" "+self._complUser+" "+self._complPwd+" "+listDeploymentsCommandDomain) output = subprocess.Popen([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,listDeploymentsCommandDomain], stdout=subprocess.PIPE ).communicate()[0] deploymentList = ValueUtils.parseDeploymentList(output) #undeploy if(appName in deploymentList): #list deployments in group listDeploymentsCommand='ls'+" "+ self._clisg + clusterB+'/deployment' print("eseguo: "+self._complPath+" "+self._cliconn+" "+self._complContr+" "+self._complUser+" "+self._complPwd+" "+listDeploymentsCommand) output = subprocess.Popen([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,listDeploymentsCommand], stdout=subprocess.PIPE ).communicate()[0] deploymentList = ValueUtils.parseDeploymentList(output) if(appName in deploymentList): undeployCommand=self._clisg+clusterB+self._clidpmt+appName+":undeploy()" print(undeployCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,undeployCommand]) removeSgCommand=self._clisg+clusterB+self._clidpmt+appName+":remove()" print(undeployCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,removeSgCommand]) removeCommand=self._clidpmt+appName+":remove()" print(removeCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,removeCommand]) #deploy print(self._complPath+" "+self._cliconn+" "+self._complContr+" "+self._complUser+" "+self._complPwd+" "+deployCommand+" "+pathTuple[0]+" "+sgCompl+" "+nameCompl+" "+runtimeName) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,deployCommand+" "+pathTuple[0]+" "+sgCompl+" "+nameCompl+" "+runtimeName]) #enable contexts for i in range(int(hostNumb)): instances = pm.getValue("cluster."+clusterB+"."+hostPrefix+str(i+1)+hostSuffix+".instances").split(',') for instance in instances: enableCommand = "/host="+hostPrefix+str(i+1)+hostSuffix+"/server="+instance+"/subsystem=modcluster:enable()" print(enableCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,enableCommand]) #disable contexts for i in range(int(hostNumb)): print("cluster."+clusterA+"."+hostPrefix+str(i+1)+".instances") instances = pm.getValue("cluster."+clusterA+"."+hostPrefix+str(i+1)+hostSuffix+".instances").split(',') for instance in instances: disableCommand = "/host="+hostPrefix+str(i+1)+hostSuffix+"/server="+instance+"/subsystem=modcluster:disable()" print(disableCommand) subprocess.check_call([self._complPath,self._cliconn,self._complContr,self._complUser,self._complPwd,disableCommand]) fname = "Domains/"+domain+".properties" pm = PropertyManager() pm.updateValue(fname,appKey,pathTuple[1].strip()) except (CalledProcessError, EapManagerException) as e: print(e.message) pass raw_input("premere un tasto per continuare...")