Ignore:
Timestamp:
Jan 15, 2010, 4:56:01 PM (15 years ago)
Author:
slederer
Message:

Aufräumen, Funktionen zum Filtern nach Ressourcen-Typ

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vanHelsing/trunk/src/bcfg.py

    r815 r816  
    1313
    1414rxp_item = re.compile('^\\s*(\\w[\\w ]*\\w+)\\s*\\=(.*)') # xxx = xxx matchen
    15 rxp_item2 = re.compile('^\\s*(\\w[\\w ]*\\w+)\\s*\\=\\s*{(.*)}\\s*') # match key = { a = 1; b= 2}
     15rxp_item2 = re.compile('^\\s*(\\w[\\w ]*\\w+)\\s*\\=\\s*{(.*)}\\s*') # match type = { a = 1; b= 2}
    1616rxp_openbrace = re.compile('^\\s*(\\w[\\w ]*\\w+)\\s*\\=?\\s*\\{\\s*')    # match xxx {
    1717rxp_open = re.compile('^\\s*(\\w[\\w ]*\\w+)\\s*$')    # match xxx
     
    2929        self.filename = filename
    3030        self.resources = resource.Root(level=0)
    31         self.resources.name="<root>"
     31        self.resources.type="<root>"
    3232
    3333    def read(self):
     
    4242        f.close()
    4343
    44     def getResourceById(self,theid):
    45         return self.resources.getById(theid)
    46 
    47     def getResourceByName(self,name):
    48         return self.resources.getByName(name)
    49 
    5044    def getRoot(self):
    5145        return self.resources
     
    5852
    5953        newRes=resClass(level+1)
    60         newRes.name=resname
     54        newRes.type=resname
    6155        curRes.add_item(newRes);
    6256        return newRes
    6357
    6458    def parse(self,curRes,f,level):
    65         #print "START",curRes.name
     59        #print "START",curRes.type
    6660
    6761        while True:
     
    9589                #print "item:",name,value
    9690                newRes=resource.Resource(level+1)
    97                 newRes.name=name
     91                newRes.type=name
    9892                newRes.value="{"+value+"}"
    9993                curRes.add_item(newRes)
     
    121115                #print "item:",name,value
    122116                newRes=resource.Resource(level+1)
    123                 newRes.name=name
     117                newRes.type=name
    124118                newRes.value=value
    125119                curRes.add_item(newRes)
     
    162156    pass
    163157
    164 def createClient(clientname,clientaddr,catalog,password):
    165     newclient=resource.Client(1,"Client")
    166     newclient.add("Name",clientname)
    167     newclient.add("Address",clientaddr)
    168     #newclient.add("FDPort",fdport)
    169     newclient.add("Catalog",catalog)
    170     newclient.add("Password",'"'+password+'"')
    171     return newclient
    172 
    173158def genpasswd(len=32):
    174159    charset="01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!/%()=?@"
     
    178163    return password
    179164
     165
     166def createClientConfig(dirdcfg,clientName,clientPassword=genpasswd()):
     167    director=dirdcfg.getRoot().getByType("Director")[0]
     168    dirdName=director.getName()
     169    r=dirdcfg.getRoot().getByName(clientName)
     170    if len(r)==1:
     171        client=r[0]
     172    else:
     173        return
     174   
     175    filename=clientName+".conf"
     176    fdcfg=FiledConfig(filename)
     177    fdcfg.setDefaults(dirdName,clientPassword,clientName)
     178    fdcfg.write()
     179
    180180def createAllClientConfigs(dirdcfg):
    181     clients=dirdcfg.getResourceByName("Client")
    182     director=dirdcfg.getResourceByName("Director")[0]
     181    clients=dirdcfg.getRoot().getByType("Client",1)
     182    director=dirdcfg.getRoot().getByType("Director")[0]
    183183    dirdName=director.getName()
    184184
    185185    for c in clients:
     186        print c
    186187        clientName=c.getName()
    187188        if clientName!=None:
    188             r=c.getByName("Password")
     189            r=c.getByType("Password")
    189190            if len(r)>0:
    190191                clientPassword=r[0].value
     
    199200 
    200201if __name__ == "__main__":
    201 
    202202    if len(sys.argv) < 2:
    203203        filename="test.conf"
    204204    else:
    205205        filename=sys.argv[1]   
    206  
     206
    207207    dirdcfg = DirdConfig(filename)
    208208    dirdcfg.read()
    209209
     210    root=dirdcfg.getRoot()
     211
    210212    job=resource.Job(1,"Job")
    211     job.add("Name",'"test2"')
    212     job.add("Client",'"test2"')
    213     job.add("JobDefs",'"testdefs"')
    214     job.add("FileSet",'"Full Set"')
    215 
    216     root=dirdcfg.getRoot()
     213    job.setDefaults("test2-job","test2","testdefs","Full Set")
     214
    217215    root.add_item(job)
    218216
    219217    pwd=genpasswd()
    220     newclient=createClient("test-fd","testclient","MyCatalog",pwd)
     218    newclient=resource.Client(1,"Client")
     219    newclient.setDefaults("test-fd","testclient","MyCatalog",pwd)
    221220    root.add_item(newclient)
    222221
     
    227226    fdcfg.write()
    228227
     228
     229    createClientConfig(dirdcfg,"gaffel-fd")
     230    createClientConfig(dirdcfg,"test-fd")
     231
    229232    createAllClientConfigs(dirdcfg)
    230 
    231233    sys.exit(0)
Note: See TracChangeset for help on using the changeset viewer.