comparison treepkg/info/status.py @ 438:3a3cad8f6f60 treepkg-status

review changes
author Bjoern Ricks <bricks@intevation.de>
date Thu, 05 Aug 2010 16:21:47 +0000
parents 8be095183151
children 6d65aa725f99
comparison
equal deleted inserted replaced
437:48577b11375f 438:3a3cad8f6f60
43 43
44 def getChilds(node, name, required=False): 44 def getChilds(node, name, required=False):
45 if not node: 45 if not node:
46 if required: 46 if required:
47 raise TreepkgInfoException("Element %s is required as child. But" 47 raise TreepkgInfoException("Element %s is required as child. But"
48 "parent element is not available.") 48 "parent element is not available.")
49 return None 49 return None
50 childs = node.getElementsByTagName(name) 50 childs = node.getElementsByTagName(name)
51 if not childs: 51 if not childs:
52 if required: 52 if required:
53 raise TreepkgInfoException("Element %s is required as child for %s." 53 raise TreepkgInfoException("Element %s is required as child for %s."
54 "The XML file must be invalid." % (name, node.nodeName)) 54 "The XML file must be invalid."
55 % (name, node.nodeName))
55 return None 56 return None
56 return childs 57 return childs
57 58
58 59
59 class TreepkgInfoException(Exception): 60 class TreepkgInfoException(Exception):
64 def __init__(self, config, numnewestrev=-1, success=False): 65 def __init__(self, config, numnewestrev=-1, success=False):
65 self.numnewestrev = numnewestrev 66 self.numnewestrev = numnewestrev
66 self.success = success 67 self.success = success
67 group = get_packager_group(config) 68 group = get_packager_group(config)
68 treepkgrootinfo = TreepkgRootInfo(group.name, group.treepkg_dir, 69 treepkgrootinfo = TreepkgRootInfo(group.name, group.treepkg_dir,
69 group.tracks_dir) 70 group.tracks_dir)
70 version = "1.0" 71 version = "1.0"
71 self.tpkgroot = TreepkgRoot(version, treepkgrootinfo) 72 self.tpkgroot = TreepkgRoot(version, treepkgrootinfo)
72 tracks = group.get_package_tracks() 73 tracks = group.get_package_tracks()
73 74
74 for track in tracks: 75 for track in tracks:
132 checksuminfo = TreepkgChecksumInfo(checksum, "md5") 133 checksuminfo = TreepkgChecksumInfo(checksum, "md5")
133 pkginfo = TreepkgPackageInfo(name, file, type, arch) 134 pkginfo = TreepkgPackageInfo(name, file, type, arch)
134 pkginfo.add_checksum(checksuminfo) 135 pkginfo.add_checksum(checksuminfo)
135 revision.add_package(pkginfo) 136 revision.add_package(pkginfo)
136 137
138
137 class TreepkgRoot: 139 class TreepkgRoot:
138 140
139 def __init__(self, version, info): 141 def __init__(self, version, info):
140 self.version = version 142 self.version = version
141 self.info = info 143 self.info = info
142 self.tracks = [] 144 self.tracks = []
143 145
309 rules = getTextFromNode(rulesele) 311 rules = getTextFromNode(rulesele)
310 statusele = getChild(node, "status", True) 312 statusele = getChild(node, "status", True)
311 messageele = getChild(statusele, "message") 313 messageele = getChild(statusele, "message")
312 message = getTextFromNode(messageele) 314 message = getTextFromNode(messageele)
313 treepkgrevisioninfo = TreepkgTrackRevisionInfo(number, rules, message) 315 treepkgrevisioninfo = TreepkgTrackRevisionInfo(number, rules, message)
314 treepkgrevisioninfo.packages = []
315 treepkgrevisioninfo.logs = []
316 packagesele = getChild(node, "packages") 316 packagesele = getChild(node, "packages")
317 packageeles = getChilds(packagesele, "package") 317 packageeles = getChilds(packagesele, "package")
318 for packageele in packageeles: 318 for packageele in packageeles:
319 treepkgrevisioninfo.packages.append( 319 treepkgrevisioninfo.packages.append(
320 TreepkgPackageInfo.fromxml(packageele)) 320 TreepkgPackageInfo.fromxml(packageele))
321 logsele = getChild(node, "logs") 321 logsele = getChild(node, "logs")
322 logeles = getChilds(logsele, "log") 322 logeles = getChilds(logsele, "log")
323 for logele in logeles: 323 for logele in logeles:
324 treepkgrevisioninfo.logs.append( 324 treepkgrevisioninfo.logs.append(TreepkgLogInfo.fromxml(logele))
325 TreepkgLogInfo.fromxml(logele))
326 return treepkgrevisioninfo 325 return treepkgrevisioninfo
327 326
328 class TreepkgLogInfo: 327 class TreepkgLogInfo:
329 328
330 def __init__(self, name, path): 329 def __init__(self, name, path):
392 name = getTextFromNode(nameele) 391 name = getTextFromNode(nameele)
393 pathele = getChild(node, "path", True) 392 pathele = getChild(node, "path", True)
394 path = getTextFromNode(pathele) 393 path = getTextFromNode(pathele)
395 ptype = node.getAttribute("type") 394 ptype = node.getAttribute("type")
396 arch = node.getAttribute("arch") 395 arch = node.getAttribute("arch")
397 if len(arch) == 0: 396 if not arch:
398 arch = None 397 arch = None
399 packageinfo = TreepkgPackageInfo(name, path, ptype, arch) 398 packageinfo = TreepkgPackageInfo(name, path, ptype, arch)
400 checksumeles = node.getElementsByTagName("checksum") 399 checksumeles = node.getElementsByTagName("checksum")
401 for checksumele in checksumeles: 400 for checksumele in checksumeles:
402 packageinfo.checksums.append(TreepkgChecksumInfo.fromxml(checksumele)) 401 packageinfo.checksums.append(
402 TreepkgChecksumInfo.fromxml(checksumele))
403 return packageinfo 403 return packageinfo
404 404
405 class TreepkgChecksumInfo: 405 class TreepkgChecksumInfo:
406 406
407 def __init__(self, checksum, type="md5"): 407 def __init__(self, checksum, type="md5"):
419 419
420 @staticmethod 420 @staticmethod
421 def fromxml(node): 421 def fromxml(node):
422 checksum = getTextFromNode(node) 422 checksum = getTextFromNode(node)
423 ctype = node.getAttribute("type") 423 ctype = node.getAttribute("type")
424 if len(ctype) == 0: 424 if not ctype:
425 return TreepkgChecksumInfo(checksum) 425 return TreepkgChecksumInfo(checksum)
426 return TreepkgChecksumInfo(checksum, ctype) 426 return TreepkgChecksumInfo(checksum, ctype)
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)