diff --git a/imgcreate/creator.py b/imgcreate/creator.py index 20b7fae..fcb9037 100644 --- a/imgcreate/creator.py +++ b/imgcreate/creator.py @@ -577,19 +577,26 @@ class ImageCreator(object): urpmi_conf = self.__builddir + "/urpmi_conf" print urpmi_conf time.sleep(5) - for repo in kickstart.get_repos(self.ks, repo_urls): - (name, baseurl, mirrorlist, proxy, inc, exc, cost, sslverify) = repo - subprocess.call(["/usr/sbin/urpmi.addmedia", "--urpmi-root", urpmi_conf, name, baseurl]) - packages = self.ks.handler.packages.packageList - if "basesystem" in packages: - print "Basesystem should be installed first" - if "kernel-nrj-desktop-latest" in packages: - subprocess.call(["/usr/sbin/urpmi", "--auto", "--split-length", "0", "--fastunsafe", "--nolock", "--ignorearch", "--no-verify-rpm", "--no-suggests", "--urpmi-root", urpmi_conf, "--root", self._instroot] + ['basesystem', 'kernel-nrj-desktop-latest']) - else: - subprocess.call(["/usr/sbin/urpmi", "--auto", "--split-length", "0", "--fastunsafe", "--nolock", "--ignorearch", "--no-verify-rpm", "--no-suggests", "--urpmi-root", urpmi_conf, "--root", self._instroot] + ['basesystem']) + try: + for repo in kickstart.get_repos(self.ks, repo_urls): + (name, baseurl, mirrorlist, proxy, inc, exc, cost, sslverify) = repo + subprocess.check_call(["/usr/sbin/urpmi.addmedia", "--urpmi-root", urpmi_conf, name, baseurl]) + except subprocess.CalledProcessError, err: + raise CreatorError("Failed to add repository \"%s\" (%s), error code %d" % (name, baseurl, err.returncode)) - print "Now let's install all other packages" - subprocess.call(["/usr/sbin/urpmi", "--auto", "--no-suggests", "--fastunsafe", "--debug", "--no-verify", "--urpmi-root", urpmi_conf, "--root", self._instroot] + packages) + packages = self.ks.handler.packages.packageList + try: + if "basesystem" in packages: + print "Basesystem should be installed first" + if "kernel-nrj-desktop-latest" in packages: + subprocess.check_call(["/usr/sbin/urpmi", "--auto", "--split-length", "0", "--fastunsafe", "--nolock", "--ignorearch", "--no-verify-rpm", "--no-suggests", "--urpmi-root", urpmi_conf, "--root", self._instroot] + ['basesystem', 'kernel-nrj-desktop-latest']) + else: + subprocess.check_call(["/usr/sbin/urpmi", "--auto", "--split-length", "0", "--fastunsafe", "--nolock", "--ignorearch", "--no-verify-rpm", "--no-suggests", "--urpmi-root", urpmi_conf, "--root", self._instroot] + ['basesystem']) + + print "Now let's install all other packages" + subprocess.check_call(["/usr/sbin/urpmi", "--auto", "--no-suggests", "--fastunsafe", "--debug", "--no-verify", "--urpmi-root", urpmi_conf, "--root", self._instroot] + packages) + except subprocess.CalledProcessError, err: + raise CreatorError("Package installation failed, error code %d" % err.returncode) def _run_post_scripts(self): for s in kickstart.get_post_scripts(self.ks):