예제 #1
0
def splittjobfile(jobfile, jobfiles, ignorejobsidentifier=False):
    root = XmlParser(jobfile)
    numberofjobs = 0
    ignoredjobs = 0
    for entry in root.iter('job'):
        if ignorejobsidentifier != False:
            status = entry.find("status").text
            if status in ignorejobsidentifier:
                root.remove(entry)
                ignoredjobs += 1
                continue
        numberofjobs += 1
    print "Found {} jobs in in file {}".format(numberofjobs, jobfile)
    if ignorejobsidentifier != False:
        if type(ignorejobsidentifier) == str:
            ignorejobsidentifier = [ignorejobsidentifier]
        print "which are not of type:{}".format(" ".join(ignorejobsidentifier))
        print "Ignored jobs: {}".format(ignoredjobs)
    numberoffiles = len(jobfiles)
    jobsperfile = numberofjobs / numberoffiles
    remaining = numberofjobs % numberoffiles
    jobsperfilelist = []
    roots = []
    for i in range(numberoffiles):
        roots.append(lxml.Element("jobs"))
        if remaining > 0:
            jobsperfilelist.append(jobsperfile + 1)
            remaining -= 1
        else:
            jobsperfilelist.append(jobsperfile)
    i = 0
    j = 1
    for entry in root.iter('job'):

        if j > jobsperfilelist[i]:
            i += 1
            j = 1
        j += 1
        roots[i].append(entry)
    print "Split up jobfile into {} files with".format(numberoffiles)
    print "with: {} jobs each".format(" ".join(map(str, jobsperfilelist)))
    for outputfile, root in zip(jobfiles, roots):
        XmlWriter(root, outputfile)
예제 #2
0
def splittjobfile(jobfile,jobfiles,ignorejobsidentifier=False):
    root=XmlParser(jobfile)
    numberofjobs=0
    ignoredjobs=0
    for entry in root.iter('job'): 
        if ignorejobsidentifier!=False:
            status=entry.find("status").text
            if status in ignorejobsidentifier:
                root.remove(entry)
                ignoredjobs+=1
                continue
        numberofjobs+=1
    print "Found {} jobs in in file {}".format(numberofjobs,jobfile)
    if ignorejobsidentifier!=False:
        if type(ignorejobsidentifier)==str:
            ignorejobsidentifier=[ignorejobsidentifier]
        print "which are not of type:{}".format(" ".join(ignorejobsidentifier))
        print "Ignored jobs: {}".format(ignoredjobs)
    numberoffiles=len(jobfiles)
    jobsperfile=numberofjobs/numberoffiles
    remaining=numberofjobs%numberoffiles
    jobsperfilelist=[]
    roots=[]
    for i in range(numberoffiles):
        roots.append(lxml.Element("jobs"))
        if remaining>0:
            jobsperfilelist.append(jobsperfile+1)
            remaining-=1
        else:
            jobsperfilelist.append(jobsperfile)
    i=0
    j=1
    for entry in root.iter('job'):
        
        if j>jobsperfilelist[i]:
            i+=1
            j=1
        j+=1
        roots[i].append(entry)
    print "Split up jobfile into {} files with".format(numberoffiles)
    print "with: {} jobs each".format(" ".join(map(str,jobsperfilelist)))
    for outputfile,root in zip(jobfiles,roots):
        XmlWriter(root,outputfile)
예제 #3
0
from __tools__ import MyParser
from __tools__ import XmlParser
from __tools__ import XmlWriter
import lxml.etree as lxml

parser = MyParser(description="Delete Entries from Jobfile")
parser.add_argument("--jobfile", "-j", type=str, required=True, help="jobfile")
parser.add_argument("--output",
                    "-o",
                    type=str,
                    default="joboutput.xml",
                    help="jobfile")
parser.add_argument("--exclude",
                    type=str,
                    nargs="+",
                    help="Tags to exclude from jobfile e,h,n,s,t")
args = parser.parse_args()

print "Removing states with tags including: {} ".format(" ".join(args.exclude))

root = XmlParser(args.jobfile)

for entry in root.iter('job'):
    status = entry.find("tag").text
    for eex in args.exclude:
        if eex in status:
            root.remove(entry)
            break
print "Writing to {}".format(args.output)
XmlWriter(root, args.output)