source: vanHelsing/trunk/src/VanHelsingSOAP.py @ 824

Last change on this file since 824 was 824, checked in by slederer, 13 years ago

Generierter Server-Code

File size: 2.6 KB
Line 
1#!/usr/bin/python
2
3from bcfg import *
4import resource
5import directive
6import ResourceInfo
7
8import ZSI
9import ZSI.dispatch
10
11import sys
12import random
13
14def genpasswd(len=32):
15    charset="01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!/%()=?@"
16    password=""
17    for a in xrange(0,len):
18       password += random.choice(charset)
19    return password
20
21
22def createClientConfig(dirdcfg,clientName,clientPassword=genpasswd()):
23    director=dirdcfg.getRoot().getByType("Director")[0]
24    dirdName=director.getName()
25    r=dirdcfg.getRoot().getByName(clientName)
26    if len(r)==1:
27        client=r[0]
28    else:
29        return
30   
31    filename=clientName+".conf"
32    fdcfg=FiledConfig(filename)
33    fdcfg.setDefaults(dirdName,clientPassword,clientName)
34    fdcfg.write()
35
36def createAllClientConfigs(dirdcfg):
37    clients=dirdcfg.getRoot().getByType("Client",1)
38    director=dirdcfg.getRoot().getByType("Director")[0]
39    dirdName=director.getName()
40
41    for c in clients:
42        print c
43        clientName=c.getName()
44        if clientName!=None:
45            r=c.getByType("Password")
46            if len(r)>0:
47                clientPassword=r[0].value
48                clientPassword=clientPassword.replace('"','')
49            else:
50                clientPassword=""
51            filename=clientName+".conf"
52            fdcfg=FiledConfig(filename)
53            fdcfg.setDefaults(dirdName,clientPassword,clientName)
54            fdcfg.write()
55
56def getDirectors():
57    return [ "bacula-dir" ];
58
59def loadDirectorConfig(filename):
60    global currentConfig
61    currentConfig=DirdConfig(filename)
62    currentConfig.read()
63
64def getDirectorConfig(directorName):
65    global currentConfig
66    return currentConfig
67
68def getClients(directorName):
69    return getResources(directorName,"Client")
70
71def getResources(directorName,resType):
72    dirdcfg=getDirectorConfig(directorName)
73    resources=dirdcfg.getRoot().getByType(resType,1)
74    result=[]
75    for r in resources:
76        result.append((r.id,r.getName()))
77    return result
78
79def getResourceById(directorName,resId):
80    dirdcfg=getDirectorConfig(directorName)
81    return dirdcfg.getRoot().getById(resId)   
82
83def getResourceByName(directorName,resType,name):
84    dirdcfg=getDirectorConfig(directorName)
85    return dirdcfg.getRoot().getByName(name,resType)[0]   
86
87def listResources(listResourcesType):
88    print listResourcesType
89    return [ r1,r2 ]
90
91# main
92if __name__ == "__main__":
93    if len(sys.argv) < 2:
94        filename="test.conf"
95    else:
96        filename=sys.argv[1]   
97
98    loadDirectorConfig(filename)
99
100    print getResources("bacula-dir","Client")
101
102    ZSI.dispatch.AsServer(port=8080,docstyle=True)
Note: See TracBrowser for help on using the repository browser.