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

Aufräumen, Funktionen zum Filtern nach Ressourcen-Typ

File:
1 edited

Legend:

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

    r815 r816  
    99
    1010class Resource(object):
    11     DIRECTIVE="Resource"
    1211    serial=0
    1312
     
    1716        self.comments = []
    1817        self._recurselevel = level
    19         self.name = name
     18        self.type = name
    2019        self.value = None
    2120        self.id=Resource.serial
     
    3029
    3130        if len(self.items)==0:
    32                 return indent+self.name+" = "+self.value+"\n";
     31                return indent+self.type+" = "+self.value+"\n";
    3332
    34         if self.name.lower() in equalsign_hack:
    35             s += indent+self.name + " = {\n";
     33        if self.type.lower() in equalsign_hack:
     34            s += indent+self.type + " = {\n";
    3635        else:
    37             s += indent+self.name + " {\n"
     36            s += indent+self.type + " {\n"
    3837        for d in self.items:
    3938            s += str(d)
     
    4948        self.items.append(item)
    5049
    51     def add(self,key,value):
     50    def add(self,type,value):
    5251        newRes=Resource()
    53         newRes.name=key
     52        newRes.type=type
    5453        newRes.value=value
    5554        newRes._recurselevel=self._recurselevel+1
     
    6665        return None
    6766
    68     def getByName(self,name):
     67    def getByType(self,name,depth=10000):
    6968        result=[]
    70         if self.name==name:
     69        if self.type==name:
    7170                result.append(self)
    72         for i in self.items:
    73                 r=i.getByName(name)
     71        if depth>0:
     72            for i in self.items:
     73                r=i.getByType(name,depth-1)
    7474                if len(r)!=0:
    7575                    for a in r:
     
    7979    def getName(self):
    8080        for i in self.items:
    81             if i.name=="Name":
     81            if i.type=="Name":
    8282                return i.value
    8383        return None
     84
     85    def getByName(self,name):
     86        result=[]
     87        if self.getName()==name:
     88            result.append(self)
     89        for i in self.items:
     90            r=i.getByName(name)
     91            if len(r)!=0:
     92                for a in r:
     93                    result.append(a)
     94        return result
    8495
    8596class Root(Resource):
     
    91102
    92103class Director(Resource):
    93     DIRECTIVE="Director"
    94104    pass
    95105
    96106class Job(Resource):
    97     DIRECTIVE="Job"
    98 
     107    def setDefaults(self,jobName,clientName,jobDefs,fileset):
     108        self.add("Name",'"'+jobName+'"')
     109        self.add("Client",clientName)
     110        self.add("JobDefs",'"'+jobDefs+'"')
     111        self.add("FileSet",'"'+fileset+'"')
     112       
    99113class JobDefs(Resource):
    100     DIRECTIVE="JobDefs"
     114    pass
    101115
    102116class Schedule(Resource):
    103     DIRECTIVE="Schedule"
     117    pass
    104118
    105119class FileSet(Resource):
    106     DIRECTIVE="FileSet"
     120    pass
    107121
    108122class Client(Resource):
    109     DIRECTIVE="Client"
     123    def setDefaults(self,clientname,clientaddr,catalog,password):
     124        self.add("Name",clientname)
     125        self.add("Address",clientaddr)
     126        self.add("Catalog",catalog)
     127        self.add("Password",'"'+password+'"')
    110128
    111129class Storage(Resource):
    112     DIRECTIVE="Storage"
     130    pass
    113131
    114132class Pool(Resource):
    115     DIRECTIVE="Pool"
     133    pass
    116134
    117135class Catalog(Resource):
    118    # ITEMS_DIRD = cdef.dird_cat_items
    119     DIRECTIVE="Catalog"
     136    pass
    120137
    121138class Messages(Resource):
    122     DIRECTIVE="Messages"
     139    pass
    123140
    124141class Console(Resource):
    125     DIRECTIVE="Console"
     142    pass
    126143
    127144class Counter(Resource):
    128     DIRECTIVE="Counter"
     145    pass
    129146
    130147class Device(Resource):
    131     DIRECTIVE="Device"
     148    pass
    132149
    133150class Autochanger(Resource):
    134     DIRECTIVE="Autochanger"
     151    pass
    135152
    136153class FileDaemon(Resource):
    137     DIRECTIVE="FileDaemon"
     154    pass
    138155
    139 __cls = locals().copy()
    140 
    141 directives = [v.DIRECTIVE for k,v in __cls.iteritems()
    142               if k != "Resource" and getattr(v, "DIRECTIVE", None)]
Note: See TracChangeset for help on using the changeset viewer.