diff treepkg/info/status.py @ 392:e2afbd3c2bf1 treepkg-status

write first info about tracks
author Bjoern Ricks <bricks@intevation.de>
date Thu, 08 Jul 2010 16:11:13 +0000
parents 1af04bfbb1d0
children 0ba451c4a856
line wrap: on
line diff
--- a/treepkg/info/status.py	Thu Jul 08 16:08:39 2010 +0000
+++ b/treepkg/info/status.py	Thu Jul 08 16:11:13 2010 +0000
@@ -9,6 +9,9 @@
 
 import xml.dom.minidom
 
+from treepkg.report import get_packager_group
+
+
 TREEPKG_NAMESPACE_URI = "http://wald.intevation.org/projects/treepkg/"
 TREEPKG_NAMESPACE_PREFIX = "tpkg"
 
@@ -23,11 +26,31 @@
 
 class TreepkgInfo:
 
-    def __init__(self, name, treepkgpath=None, millpath=None, version=None):
+    def __init__(self, config):
+        group = get_packager_group(config)
+        self.tpkgroot = TreepkgRootInfo(group.name, group.treepkg_dir, 
+                                        group.tracks_dir)
+        tracks = group.get_package_tracks()
+
+        for track in tracks:
+            trackinfo = TreepkgTrackInfo(track.name)
+            self.tpkgroot.add_track(trackinfo)
+
+    def toxml(self):
+        return self.tpkgroot.toxml()
+
+
+class TreepkgRootInfo:
+
+    def __init__(self, name, treepkgpath=None, trackspath=None, version=None):
         self.name = name
         self.treepkgpath = treepkgpath
-        self.millpath = millpath
+        self.trackspath = trackspath
         self.version = version
+        self.tracks = []
+
+    def add_track(self, track):
+        self.tracks.append(track)
 
     def toxml(self):
         (doc, root) = createTpkgRoot("status")
@@ -42,21 +65,26 @@
             text = doc.createTextNode(self.treepkgpath)
             treepkgpathele.appendChild(text)
             root.appendChild(treepkgpathele)
-        # add <millpath>
-        if self.millpath:
-            millpathele = createTpkgElement(doc, "millpath")
-            text = doc.createTextNode(self.millpath)
-            millpathele.appendChild(text)
-            root.appendChild(millpathele)
+        # add <trackspath>
+        if self.trackspath:
+            trackspathele = createTpkgElement(doc, "trackspath")
+            text = doc.createTextNode(self.trackspath)
+            trackspathele.appendChild(text)
+            root.appendChild(trackspathele)
         # add <version>
         if self.version:
             versionele = createTpkgElement(doc, "version")
             text = doc.createTextNode(self.version)
             versionele.appendChild(text)
             root.appendChild(version)
+        if len(self.tracks) > 0:
+            tracksele = createTpkgElement(doc, "tracks")
+            for track in self.tracks:
+                tracksele.appendChild(track.toxml())
+            root.appendChild(tracksele)
         return root
 
-class TreepkgTrack:
+class TreepkgTrackInfo:
     
     def __init__(self, name):
         self.name = name
@@ -71,11 +99,11 @@
         text = doc.createTextNode(self.name)
         nameele.appendChild(text)
         root.appendChild(nameele)
-        for rev in self.revision:
+        for rev in self.revisions:
             root.appendChild(rev.toxml())
         return root
 
-class TreepkgTrackRevision:
+class TreepkgTrackRevisionInfo:
 
     def __init__(self, number, rules, status, platform):
         self.number = number
@@ -106,7 +134,7 @@
         root.appendChild(platform.toxml())
         return root
 
-class TreepkgPlatform:
+class TreepkgPlatformInfo:
 
     def __init__(self, os, arch):
         self.os = os
@@ -144,7 +172,7 @@
         root.appendChild(logsele)
         return root
 
-class TreepkgLog:
+class TreepkgLogInfo:
 
     def __init__(self, name, path):
         self.name = name
@@ -164,7 +192,7 @@
         root.appendChild(pathele)
         return root
 
-class TreepkgPackage:
+class TreepkgPackageInfo:
         
         def __init__(self, name, path, type, checksum = None):
             self.name = name
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)