]> git.ipfire.org Git - pakfire.git/commitdiff
Tell the solver the correct priority of a repository.
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 20 Jul 2011 16:31:52 +0000 (18:31 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 20 Jul 2011 16:31:52 +0000 (18:31 +0200)
pakfire/repository/base.py
pakfire/repository/remote.py
src/_pakfiremodule.c
src/repo.c
src/repo.h

index 448ac1a54d0e4029ce1f58be5488f34cc4a278d8..2b60829eb27a0b2647134b995e541627254c5fc8 100644 (file)
@@ -16,6 +16,7 @@ class RepositoryFactory(object):
 
                # Reference to corresponding Repo object in the solver.
                self.solver_repo = satsolver.Repo(self.pool, self.name)
+               self.solver_repo.set_priority(self.priority)
 
                logging.debug("Initialized new repository: %s" % self)
 
@@ -93,3 +94,9 @@ class RepositoryDummy(RepositoryFactory):
        def __init__(self, pakfire):
                RepositoryFactory.__init__(self, pakfire, "dummy",
                        "This is a dummy repository.")
+
+       @property
+       def priority(self):
+               # This will never be used in the solving process, but still it needs
+               # a value.
+               return 0
index 2410f002d58eb899726f87b803f3f365bbfff1e8..4805b2ecaa49e68b7a4c8e7ee68af85dc775a24e 100644 (file)
@@ -12,13 +12,13 @@ from pakfire.constants import *
 
 class RepositorySolv(base.RepositoryFactory):
        def __init__(self, pakfire, name, description, url, mirrorlist, gpgkey, enabled=True):
-               base.RepositoryFactory.__init__(self, pakfire, name, description)
-
                # Parse arguments.
                self.url = url
                self.gpgkey = gpgkey
                self.mirrorlist = mirrorlist
 
+               base.RepositoryFactory.__init__(self, pakfire, name, description)
+
                # Initialize mirror servers.
                self.mirrors = downloader.MirrorList(self.pakfire, self)
 
index d4fff1493de2297a68e168bb457536d912a90848..b55d41367cd7674a3c919cb61b1274eff1cd5f90 100644 (file)
@@ -53,6 +53,8 @@ static PyMethodDef Repo_methods[] = {
        {"size", (PyCFunction)Repo_size, METH_NOARGS, NULL},
        {"get_enabled", (PyCFunction)Repo_get_enabled, METH_NOARGS, NULL},
        {"set_enabled", (PyCFunction)Repo_set_enabled, METH_VARARGS, NULL},
+       {"get_priority", (PyCFunction)Repo_get_priority, METH_NOARGS, NULL},
+       {"set_priority", (PyCFunction)Repo_set_priority, METH_VARARGS, NULL},
        {"write", (PyCFunction)Repo_write, METH_VARARGS, NULL},
        {"read", (PyCFunction)Repo_read, METH_VARARGS, NULL},
        { NULL, NULL, 0, NULL }
index fdbc4c01438f7910a1db9c7e37c309310cdaa426..eccf32963120cfc679d46c90fe1a9d4e4bbd8de4 100644 (file)
@@ -83,6 +83,23 @@ PyObject *Repo_set_enabled(RepoObject *self, PyObject *args) {
        Py_RETURN_NONE;
 }
 
+PyObject *Repo_get_priority(RepoObject *self) {
+       Py_BuildValue("i", self->_repo->priority);
+}
+
+PyObject *Repo_set_priority(RepoObject *self, PyObject *args) {
+       int priority;
+
+       if (!PyArg_ParseTuple(args, "i", &priority)) {
+               /* XXX raise exception */
+               return NULL;
+       }
+
+       self->_repo->priority = priority;
+
+       Py_RETURN_NONE;
+}
+
 PyObject *Repo_write(RepoObject *self, PyObject *args) {
        const char *filename;
 
index 4ada99715d84ef08e5fa5bb71778180f989c8dce..8c76341ce37de1578de90b617f7ed0a13f9971cb 100644 (file)
@@ -18,6 +18,8 @@ extern PyObject *Repo_name(RepoObject *self);
 extern PyObject *Repo_size(RepoObject *self);
 extern PyObject *Repo_get_enabled(RepoObject *self);
 extern PyObject *Repo_set_enabled(RepoObject *self, PyObject *args);
+extern PyObject *Repo_get_priority(RepoObject *self);
+extern PyObject *Repo_set_priority(RepoObject *self, PyObject *args);
 extern PyObject *Repo_write(RepoObject *self, PyObject *args);
 extern PyObject *Repo_read(RepoObject *self, PyObject *args);