context: don't raise exception when no partitions found

Allows creation of a context object or device assign if no label
is present in the device.

This case is not frecuent but not critical, do not raise an exception.
For example, a brand new disk with no label or a raw virtual disk
image with no label.
master
Jose M. Guisado 2022-12-20 11:30:41 +01:00
parent 9bf2d030c9
commit a732758f2b
1 changed files with 2 additions and 10 deletions

View File

@ -74,11 +74,7 @@ static int Context_init(ContextObject *self, PyObject *args, PyObject *kwds)
set_PyErr_from_rc(-rc);
return -1;
}
if ((fdisk_get_partitions(self->cxt, &self->tb) < 0)) {
set_PyErr_from_rc(-rc);
return -1;
}
fdisk_get_partitions(self->cxt, &self->tb);
return 0;
}
@ -89,7 +85,6 @@ static int Context_init(ContextObject *self, PyObject *args, PyObject *kwds)
static PyObject *Context_assign_device(ContextObject *self, PyObject *args, PyObject *kwds)
{
char *fname;
int rc;
if (!PyArg_ParseTuple(args, "s", &fname)) {
PyErr_SetString(PyExc_TypeError, ARG_ERR);
@ -102,10 +97,7 @@ static PyObject *Context_assign_device(ContextObject *self, PyObject *args, PyOb
fdisk_assign_device(self->cxt, fname, 1);
self->lb = fdisk_get_label(self->cxt, NULL);
if ((rc = fdisk_get_partitions(self->cxt, &self->tb) < 0)) {
set_PyErr_from_rc(-rc);
return NULL;
}
fdisk_get_partitions(self->cxt, &self->tb);
Py_INCREF(Py_None);
return Py_None;