Mercurial > treepkg > treepkg
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) |