return "torrent"
elif "xen" in filename:
+ if "downloader" in filename:
+ return "xen-downloader"
+
return "xen"
elif "sources" in filename:
"usbfdd" : _("USB FDD Image"),
"usbhdd" : _("USB HDD Image"),
"xen" : _("Pregenerated Xen image"),
+ "xen-downloader": _("Xen-Image Generator"),
}
try:
"armv5tel" : 40,
"armv5tel-scon" : 41,
"xen" : 50,
+ "xen-downloader": 51,
}
try:
"usbfdd" : _("Install IPFire from a floppy-formated USB key."),
"usbhdd" : _("If the floppy image doesn't work, use this image instead."),
"xen" : _("A ready-to-run image for Xen."),
+ "xen-downloader": _("Generator for creating a Xen image."),
}
try:
if not self.torrent_hash:
return
- return self.tracker.get_seeds(self.torrent_hash)
+ return self.backend.tracker.complete(self.torrent_hash)
@property
def peers(self):
if not self.torrent_hash:
return
- return self.tracker.get_peers(self.torrent_hash)
+ return self.backend.tracker.incomplete(self.torrent_hash)
class Release(Object):
if f:
f.close()
+ def supports_arch(self, arch):
+ # Currently there is nothing else than i586 supported
+ if arch == "i586":
+ return True
+
+ return False
+
+ def supports_platform(self, platform):
+ # Currently there is nothing else than pcbios supported
+ if platform == "pcbios":
+ return True
+
+ return False
+
def is_netboot_capable(self):
return self.path and "ipfire-2.x" in self.path
- @property
- def netboot_kernel(self):
+ def netboot_kernel_url(self, arch, platform):
+ assert self.supports_arch(arch)
+ assert self.supports_platform(platform)
+
return "http://downloads.ipfire.org/%s/images/vmlinuz" % self.path
- @property
- def netboot_initrd(self):
+ def netboot_initrd_url(self, arch, platform):
+ assert self.supports_arch(arch)
+ assert self.supports_platform(platform)
+
return "http://downloads.ipfire.org/%s/images/instroot" % self.path
+ def netboot_args(self, arch, platform):
+ return ""
+
+ @property
+ def news_id(self):
+ return self.__data.news_id
+
@property
- def netboot_append(self):
- return "ro"
+ def news(self):
+ if not hasattr(self, "_news"):
+ self._news = self.backend.news.get(self.news_id)
+
+ return self._news
class Releases(Object):
if ret:
return Release(self.backend, ret.id, data=ret)
+ def get_by_news_id(self, news_id):
+ ret = self.db.get("SELECT * FROM releases WHERE news_id = %s", news_id)
+
+ if ret:
+ return Release(self.backend, ret.id, data=ret)
+
def get_latest(self, stable=True):
ret = self.db.get("SELECT * FROM releases WHERE published IS NOT NULL AND published <= NOW() \
AND stable = %s ORDER BY published DESC LIMIT 1", stable)