def ListBranchs(self,workdir,owner=''): global msg if owner == '': owner = Config.Owner msg = Job.createGetBranchs(workdir=workdir, scm=self.scm, owner=owner) result = self._send(msg) return result.split("\n")
def Pull(self, repo, workdir, key, owner=''): global msg if owner == '': owner = Config.Owner msg = Job.createPullMessage(owner, workdir, self.sshkey, self.scm, options=self.options) result = self._send(msg) return result
def ListCommits(self, workdir, page=0, rpp=10, owner='', options=None): if owner == '': owner = Config.Owner msg = Job.createListCommitsMessage(workdir=workdir, scm=self.scm, owner=owner, key=self.sshkey, options=options) res = self._send(msg) result = [] #HEAD = True for line in res.split("\n"): if line == "": continue info = line.split(",,") # print line # if HEAD: # info[0] = "HEAD" # HEAD = False try: d = { "Hash": info[0], "Short": info[1], "Author": info[2], "Committed": info[3], "Message": info[4] } result.append(d) except: print "Error while parsing line (%s)" % line #print result return result
def ListTags(self, workdir, owner=''): global msg if owner == '': owner = Config.Owner msg = Job.createListTagsMessage(workdir=workdir, scm=self.scm, key=self.sshkey, owner=owner) result = self._send(msg) if result == "Done": return [] #print result res = [] for line in result.split("\n"): if line == "": continue info = line.split(",,") Date = datetime.datetime.strptime( info[2][:-6], "%a %b %d %H:%M:%S %Y").strftime("%Y-%m-%d %H:%M:%S") res.append({ "Tag": info[0], "Tagger": info[1], "Date": Date, "Commit": info[3] }) if len(res) > 0: newlist = sorted(res, key=itemgetter('Date'), reverse=True) return newlist else: return []
def ListBranchs(self, workdir, owner=''): global msg if owner == '': owner = Config.Owner msg = Job.createGetBranchs(workdir=workdir, scm=self.scm, owner=owner) result = self._send(msg) return result.split("\n")
def checkStatus(domain,port,id,owner,waitTillCompleted=True,retry=True): #print "retry in CheckStatus:",retry Connect.domain= domain Connect.port = port status = Job.checkJobStatus(Connect,id,owner,waitTillCompleted,retry) return status
def SwitchTag(self, workdir, tag, owner=''): global msg if owner == '': owner = Config.Owner msg = Job.createSwitchTagMessage(workdir=workdir, tag=tag, scm=self.scm, owner=owner) result = self._send(msg) return result
def Deploy(self, workdir, configFile, owner=''): global msg if owner == '': owner = Config.Owner msg = Job.createDeployMessage(workdir=workdir, configFile=configFile, scm=self.scm, owner=owner) result = self._send(msg) return result
def getChangeLog(self, workdir, since,to, owner=''): if owner == '': owner = Config.Owner msg = Job.createGetChangeLog(owner, workdir, self.scm,options={"since":since,"to":to}) res = self._send(msg) result = [] for item in res.split("\n"): if item == "" or item == "Done": continue result.append(item) return result
def getCommitsDiff(self,workdir,commit,owner=''): if owner == '': owner = Config.Owner msg = Job.creategetCommitsDiffMessage(owner, workdir, commit, self.scm) res = self._send(msg) result=[] for item in res.split("\n"): if item=="" or item=="Done" : continue result.append(item) return result
def getCommitsDiff(self, workdir, commit, owner=''): if owner == '': owner = Config.Owner msg = Job.creategetCommitsDiffMessage(owner, workdir, commit, self.scm) res = self._send(msg) result = [] for item in res.split("\n"): if item == "" or item == "Done": continue result.append(item) return result
def UploadFiles(domain,port,id,owner,files,outputDir): Connect.domain = domain print Connect.domain Connect.port = port print Connect.port retry = True for file in files: print file uploadData = Job.UploadFileData(id,owner,file,outputDir) res = Connect.Send(uploadData,retry) return res
def FetchFiles(domain,port,files,mode='auto',destination="",retry=True): #print domain,files,mode,destination,sshKeyPath Connect.domain=domain Connect.port =port if (files !=None): #print "in files" if mode=="auto": if sshKeyPath!="": mode="scp" else: mode="xml" print 'Decided to use ' + mode + " to transfer files" if mode=='xml': msg=Job.FetchOutput(id,owner,files) # print msg #print "retry in fetchFiles:",retry res = Connect.Send(msg,retry) outlist=Job.parseResponse(res) # print outlist return outlist elif mode=='scp': print "in scp" print files for file in files: dest="" if destination=="": dest=os.path.dirname(os.path.abspath(file)) else: dest=destination if not os.path.exists(dest): os.makedirs(dest) cmd='scp -r -i %s ubuntu@%s:%s %s'%(sshKeyPath,domain,file,dest) #print 'cmd:' ,cmd #exit() scp(cmd) return files else: return "No Files"
def getChangeLog(self, workdir, since, to, owner=''): if owner == '': owner = Config.Owner msg = Job.createGetChangeLog(owner, workdir, self.scm, options={ "since": since, "to": to }) res = self._send(msg) result = [] for item in res.split("\n"): if item == "" or item == "Done": continue result.append(item) return result
def ListTags(self, workdir, owner=''): global msg if owner == '': owner = Config.Owner msg = Job.createListTagsMessage(workdir=workdir, scm=self.scm, key=self.sshkey, owner=owner) result = self._send(msg) if result == "Done": return [] #print result res=[] for line in result.split("\n"): if line=="": continue info=line.split(",,") Date=datetime.datetime.strptime(info[2][:-6],"%a %b %d %H:%M:%S %Y").strftime("%Y-%m-%d %H:%M:%S") res.append({"Tag":info[0],"Tagger":info[1],"Date":Date,"Commit":info[3]}) if len(res)>0: newlist = sorted(res, key=itemgetter('Date'), reverse=True) return newlist else: return []
def ListCommits(self, workdir, page=0, rpp=10, owner='',options=None): if owner == '': owner = Config.Owner msg = Job.createListCommitsMessage(workdir=workdir, scm=self.scm, owner=owner,key=self.sshkey,options=options) res = self._send(msg) result = [] #HEAD = True for line in res.split("\n"): if line=="": continue info = line.split(",,") # print line # if HEAD: # info[0] = "HEAD" # HEAD = False try: d = {"Hash": info[0], "Short": info[1], "Author": info[2], "Committed": info[3], "Message": info[4]} result.append(d) except: print "Error while parsing line (%s)"%line #print result return result
def submitJob(domain,port,id,owner,command,inputs=None,outputs=None,retry=True): #print "sending new job to..",domain """global forceFiles if not forceFiles: if inputs!=None: for file in inputs: if not file in command: print "Input file '" + file + "' doesn't exists in the command, please revise your command, files list or use --force-files" exit(-10) if outputs !=None: for file in outputs: if not file in command: print "Output file '" + file + "' doesn't exists in the command, please revise your command, files list or use --force-files" exit(-10) """ msg=Job.createJobMessage(id,owner,command.strip(),inputs,outputs,retry) #raise Exception(msg) Connect.domain = domain Connect.port = port #print Connect.domain #print msg res = Connect.Send(msg,retry) return res
def SwitchCommit(self, workdir, commit, owner=''): if owner == '': owner = Config.Owner msg = Job.createSwitchCommitMessage(owner, workdir, commit, self.scm) res = self._send(msg) return res